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

时间:2010-08-15 15:16:21

标签: ruby-on-rails migration

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

在Rails中可以吗?

6 个答案:

答案 0 :(得分:9)

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

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

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

答案 1 :(得分:8)

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

答案 2 :(得分:3)

从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

答案 3 :(得分:1)

db:reset执行奥马尔的建议。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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