我有一张使用迁移创建的表,现在我想要摆脱这个表。我相信我可以撤销那个迁移,但我找不到执行该操作的语法。我通过搜索Rails DB Migration - How To Drop a Table? 找到了这个问题,但他只是说你可以找到你需要的东西并提供一个链接。我阅读了那个链接,但没有看到任何关于如何执行此操作的内容。我看到了一些片段,但不知道如何将它们组合起来。我在迁移中看到有一个self.down方法,我只需要知道如何调用它。
drop_table :table_name
rake db:rollback
这将运行 self.down
方法,该方法应为 drop_table :table_name
。rake db:rollback STEP=n
如果您需要回滚步数,请使用 n 代表需要回滚的步数。如果不指定 STEP,则默认值为 1。
要迁移到特定版本,请使用:
rake db:migrate:down VERSION=20080906120000
drop_table :table_name
您可以使用rake命令来删除模型以删除表格:
rails destroy model your_model
generate model Foo
命令创建一个相应的数据库迁移,以创建一个用于存储Foo实例的表时,运行destroy model Foo
并不会销毁该表。正如http://railsforum.com/viewtopic.php?pid=10961#p10961所说:“需要注意的是 - 当你生成一个模型时,它会创建一个数据库迁移。如果你对该模型运行‘destroy’命令,它将删除迁移文件,但不会删除数据库表...” - Teemu Leisti
up
方法中加入drop_table :table_name
,在down
方法中加入create_table :table_name
,然后运行迁移。这样,任何使用相同项目的其他人在使用rake db:migrate
时都会删除该表。 - rubyprince