【问题标题】:Create or update records in seeds.db在 seed.db 中创建或更新记录
【发布时间】:2014-01-04 00:26:53
【问题描述】:

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

解决这个问题的正确方法是什么?我应该创建一个单独的 rake 任务还是什么?我的seeds.db 文件中应该有if exists, update 逻辑吗?

【问题讨论】:

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


    【解决方案1】:

    您可以使用类似于此问题的内容 - create_or_update method in rails

    然后编写您的种子.rb 以使用 update_or_create 而不仅仅是创建记录。这样您就可以简单地重新运行您的种子数据来刷新您的数据库?

    【讨论】:

      【解决方案2】:

      有不同的方法来处理这种情况。

      如果您只想复制数据库的某些列,那么种子文件或 rake 任务就足够了。

      此外,

      Model.find_or_create_by_field("XXXXX") 可以解决问题。

      如果您希望将整个数据库复制到生产中,我会选择 taps gem(观看此 railscast http://railscasts.com/episodes/342-migrating-to-postgresql),或者如果您正在部署到 heroku,就像 heroku pg:pull 一样简单

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-12
        • 2011-06-05
        • 1970-01-01
        相关资源
        最近更新 更多