Rails:在早期开发阶段改变迁移

在Rails应用程序的早期开发阶段,我更喜欢直接修改迁移文件以向表(模型)添加新列(字段),而不是堆积迁移以更改字段和/或进行微小更改。

这可能在Rails中吗?

我运行以下命令来解决此问题。 将它保存在脚本中,您就可以开始了! 当然,这假设丢失数据很好。 在任何情况下,加载灯具都很容易添加到此脚本中。

#!/bin/sh rake db:drop rake db:create rake db:migrate --trace 

PS:给我这个想法的朋友叫这个脚本rake_dance 🙂

据推测,你这样做的事实表明它是可能的!

从Vijay Dev的解决方案驱动的最干净的解决方案是创建一个rake任务:

 namespace :db do desc "Drops, recreates and seeds the database." task :reload => [:drop, :create, :migrate, :seed] do Rake::Task['db:drop'].invoke Rake::Task['db:create'].invoke Rake::Task['db:migrate'].invoke Rake::Task['db:seed'].invoke end end 

db:reset执行Omar建议的内容。

我建议在采用这种方法时使用fixture(因为它允许在删除数据库后重新创建应用程序的示例数据)。 另一种选择是http://datamapper.org/ (不需要迁移)。

发现我们可以在一个命令中组合所有内容:

 rake db:drop db:create db:migrate db:seed 

使用shell别名可以快速重做所有旧迁移。