删除过去在rails中的迁移

时间:2012-04-12 11:37:26

标签: ruby-on-rails ruby-on-rails-3 rails-migrations

自我的rails应用程序开始以来,我创建了大量的迁移。其中一些仅用于测试目的。我现在有很多完全没用的迁移(例如:在迁移中创建一个表并在下一个中删除它)。

当运行db:migrate后,schema.rb会更新,是否可以删除所有迁移并从schema.rb的实际内容开始?

2 个答案:

答案 0 :(得分:8)

是的,您可以(也可能应该)删除较旧的迁移。由于您的模型代码将取决于架构的更高版本,因此您的旧迁移可能不再有效。

因此,请务必删除迁移(您在源代码管理下拥有它们,对吧?),然后使用

rake db:schema:load

如果需要,可以初始化新数据库。

更新:Rails指南现在有类似的说法:http://guides.rubyonrails.org/active_record_migrations.html#schema-dumping-and-you

答案 1 :(得分:0)

更好的方法是执行以下操作...

一旦达到项目的里程碑,并且您确定不想在该版本的数据库下迁移, 您可以使用单个迁移文件替换大量迁移文件,然后可以将其用作新的" initial"迁移捆绑了截至该日期所做的所有事情。

之后:继续在项目中使用迁移!

永远不要手动编辑schema.rb文件..永远不要加载db / schema.rb文件,除非它是灾难恢复之类的东西。

您没有100%保证签入版本控制的文件是最新版本甚至是正确版本。

上下迁移更加安全,而只需在一个迁移文件中捆绑大量迁移。

通过手动加载schema.rb文件,您完全避开了迁移提供的安全网。这不是一个好主意。