在Rails应用程序的早期开发阶段,我更喜欢直接修改迁移文件以向表(模型)添加新列(字段),而不是堆积迁移以更改字段和/或进行微小更改
在Rails中可以吗?
答案 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别名可以快速重做所有旧迁移。