Ruby on rails 什么';在Rails中清理迁移的好方法是什么?
因此,我已经在这个web应用程序上工作了一年,我想将模式编译成一个迁移,这样我的文本编辑器加载得更快,git工作目录就不会那么混乱了 搜索和查找会更快Ruby on rails 什么';在Rails中清理迁移的好方法是什么?,ruby-on-rails,activerecord,rails-activerecord,rails-migrations,Ruby On Rails,Activerecord,Rails Activerecord,Rails Migrations,因此,我已经在这个web应用程序上工作了一年,我想将模式编译成一个迁移,这样我的文本编辑器加载得更快,git工作目录就不会那么混乱了 搜索和查找会更快 任何my config/db都不会有4000px长。一种方法是使用一个空白数据库并运行所有迁移。现在您已经拥有了所有可以保存到yaml的模板数据。yaml加上模式应该足以在不运行任何以前存在的迁移的情况下恢复DB 然而,其他答案应该提到一个现有的工具或gem 您不需要永远保留迁移,只要确定不再需要它们,您就可以随时删除它们。只需进入您的db/mi
任何my config/db都不会有4000px长。一种方法是使用一个空白数据库并运行所有迁移。现在您已经拥有了所有可以保存到yaml的模板数据。yaml加上模式应该足以在不运行任何以前存在的迁移的情况下恢复DB
然而,其他答案应该提到一个现有的工具或gem 您不需要永远保留迁移,只要确定不再需要它们,您就可以随时删除它们。只需进入您的
db/migrate/
目录,删除早于(比如)几个月的迁移
只要您要删除的所有迁移都已在任何地方应用(即开发和生产),那么您就不再需要它们(除非您想倒退)。实际上,迁移并不意味着永久文件,它们只是将您从A带到B,然后它们只是行李。迁移服务器后删除迁移文件。如果您想要从新的部署开始,请运行
rakedb:schema:load
或rakedb:setup
。您不应该像前面解释的那样重新运行所有迁移。鉴于没有一个答案提到这一点,这就是完成这项工作的gem:
它基本上从头开始重新运行迁移,直到您指定的日期,然后将生成的db/schema.rb
加载到替换旧迁移的初始迁移中。它还可以清理schema\u迁移
表,这样您就不会得到这些迁移
up <timestamp> ********** NO FILE **********
up**********无文件**********
运行
rake db:migrate:status
时的条目希望得到更具体的命令或gem,如您所提到的:-)是的,只需将粘贴db/schema.rb内容复制到新的迁移中,这就足够了。我认为这也提出了改进Rails迁移的建议。真的,谁做rake db:rollback STEP=10?!既然我们有一个工作模式,为什么我们需要在项目中保留迁移?也许有一个rake db:干净?