在seeds.db中创建或更新记录

时间:2014-01-04 00:26:54

标签: ruby-on-rails ruby-on-rails-4 rake

在我的生产数据库中,我不想删除所有信息,但我确实想使用seeds.db文件更新现有行的某些字段(我添加了一个新列)。

正确的方法是什么?我应该创建单独的佣金任务吗?我的seeds.db文件中应该有if exists, update逻辑吗?

2 个答案:

答案 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

相关问题