什么是在Rails中清理迁移的好方法?

时间:2011-07-26 02:33:21

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

所以我已经在这个网络应用程序上工作了一年,我想编译成一个移植模式,这样我的文本编辑器加载速度更快,git工作目录不那么杂乱。

搜索查找会更快。

任何我的配置/数据库都不会是4000px长。

4 个答案:

答案 0 :(得分:11)

迁移服务器后删除迁移文件。如果您希望从全新部署开始,请运行rake db:schema:loadrake db:setup。您不应按照here所解释的那样重新运行所有迁移。

答案 1 :(得分:8)

您无需永久保留迁移,只要您确定不再需要迁移,就可以自由删除它们。只需进入您的db/migrate/目录并删除比几个月更早的迁移。

只要您想要删除的所有迁移都已应用于任何地方(即开发和生产),那么您不再需要它们(除非您想要倒退)。实际上,迁移并不是永久性文件,它们只是让你从A到B,然后它们只是行李。

答案 2 :(得分:3)

一种方法是采用空白数据库并运行所有迁移。现在您已经获得了可以保存为yaml的所有模板数据。 yaml加上模式应足以使数据库恢复运行而不运行任何以前存在的迁移。

但是,其他答案应该提到现有的工具或宝石来做这件事。

答案 3 :(得分:3)

鉴于答案中没有一个提到它,这就是完成这项工作的宝石:https://github.com/jalkoby/squasher

它基本上从头开始重新运行迁移,直到您指定的日期,然后将生成的db/schema.rb加载到初始迁移中,替换旧的迁移。它还可以清理schema_migrations表格,因此您无法获得这些

up     <timestamp>  ********** NO FILE **********
运行rake db:migrate:status时的

条目。