所以我已经在这个网络应用程序上工作了一年,我想编译成一个移植模式,这样我的文本编辑器加载速度更快,git工作目录不那么杂乱。
搜索查找会更快。
任何我的配置/数据库都不会是4000px长。
答案 0 :(得分:11)
迁移服务器后删除迁移文件。如果您希望从全新部署开始,请运行rake db:schema:load
或rake 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
时的条目。