13

所以我已经在这个网络应用程序上工作了一年,我想将架构编译到 ONE 迁移中,这样我的文本编辑器加载速度更快,git 工作目录不会那么混乱。

搜索查找会更快。

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

4

4 回答 4

12

迁移服务器后删除迁移文件。如果您想从全新部署开始,请运行rake db:schema:loadrake db:setup. 您不应该按照此处的说明重新运行所有迁移。

于 2011-07-26T03:15:50.450 回答
11

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

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

于 2011-07-26T03:01:06.403 回答
3

一种方法是使用一个空白数据库并运行所有迁移。现在您已经获得了可以保存到 yaml 的所有模板数据。yaml 加上架构应该足以在不运行任何先前存在的迁移的情况下恢复数据库。

但是,其他答案应提及执行此操作的现有工具或 gem。

于 2011-07-26T02:38:37.503 回答
3

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

它基本上从头开始重新运行迁移,直到您指定的日期,然后将结果加载db/schema.rb到替换旧迁移的初始迁移中。它还可以清理schema_migrations桌子,这样你就不会得到那些

up     <timestamp>  ********** NO FILE **********

运行时的条目rake db:migrate:status

于 2014-08-20T10:58:59.637 回答