【问题标题】:Where do I put seed data if I have already created my database in my Rails project?如果我已经在 Rails 项目中创建了数据库,我应该将种子数据放在哪里?
【发布时间】:2016-03-21 20:55:37
【问题描述】:

我使用的是里亚尔 4.2.5。我想为我刚刚在现有项目中创建的新模型 user_images 创建一些种子数据。但是,我已经在我的数据库上运行了一个 db/seeds.rb 文件。我将这个新模型的种子数据放在哪里?我假设我不能使用 db/seeds.rb 因为它已经运行了。炸毁数据库并重新开始不是一种选择。

谢谢,- 戴夫

【问题讨论】:

    标签: ruby-on-rails database seed


    【解决方案1】:

    你可以用种子..我用,例如:

    Person.find_or_create_by(name: 'Bob')
    

    根据需要大量运行,然后根据需要运行多次。例如,我在每次自动部署时运行种子,所以我不会忘记......

    命令链接:http://apidock.com/rails/v4.2.1/ActiveRecord/Relation/find_or_create_by

    【讨论】:

    • 这是一个有用的命令,但你是把它放在 db/seeds.rb 中吗?
    • 是的。直接进去将您当前的种子更新为相同的格式。这样他们也将在那里,如果你确实需要吹走数据库,他们会回来的。
    【解决方案2】:

    在 lib/tasks 中创建自定义 rake 任务。该文件应以 .rake 结尾。然后按名称运行它。例如:

    task :do_something => :environment do
      p "do something"
    end
    

    您可以通过在终端中调用 rake do_something 来运行此任务。

    【讨论】:

      猜你喜欢
      • 2016-11-22
      • 1970-01-01
      • 2014-11-08
      • 2011-03-29
      • 2014-07-04
      • 2014-04-19
      • 1970-01-01
      • 2017-02-25
      • 2014-09-06
      相关资源
      最近更新 更多