在我的生产数据库中,我不想删除所有信息,但我确实想使用seeds.db文件更新现有行的某些字段(我添加了一个新列)。
正确的方法是什么?我应该创建单独的佣金任务吗?我的seeds.db文件中应该有if exists, update
逻辑吗?
答案 0 :(得分:2)
您可以使用类似于此问题的内容 - create_or_update method in rails
然后编写seeds.rb以使用update_or_create而不是仅创建记录。这样您就可以简单地重新运行种子数据来刷新数据库吗?
答案 1 :(得分:0)
管理这种情况有不同的方法。
如果您只想复制数据库的某些列,那么种子文件或rake任务就足够了。
此外,
Model.find_or_create_by_field(“XXXXX”)可以解决问题。
如果您希望将整个数据库复制到生产中,我会使用taps gem(观看此railscast http://railscasts.com/episodes/342-migrating-to-postgresql),或者如果您正在部署到heroku,就像heroku pg一样简单:pull