使用seed.rb时的最佳做法

Lin*_*der 4 ruby-on-rails seed ruby-on-rails-3

我在理解如何seed.rb在rails中使用脚本时遇到了一些困难.

到目前为止,我每次部署应用程序时都使用它来填充数据库.

像这样.

seed.rb

["Video", "Tv"].each do |thing|
  Category.create(name: thing)
end
Run Code Online (Sandbox Code Playgroud)

category.rb

class Category < ActiveRecord::Base
  validates_uniqueness_of :name
end
Run Code Online (Sandbox Code Playgroud)

现在可以在每次部署或拉取时运行该脚本.开发团队中的任何人现在都可以添加自己的类别,而无需担心重复.

像这样.

人一

  • Table类别添加到seed.rb.
  • 承诺并推动掌握.

人二

  • 拉大师.
  • 运行rake db:migraterake db:seed确保本地数据库是最新的.
  • 将应用程序部署到生产服务器.rake db:seed正在服务器上运行以确保最新的数据库.

这个工作流程是否可以,如果没有,我应该在哪里放置新数据以确保每个开发人员都拥有最新的数据库?

Pau*_*ess 5

我建议您编写种子,以便在不尝试创建重复类别的情况下多次运行它...

["Video", "Tv"].each do |thing|
  Category.find_or_create_by_name(thing)
end
Run Code Online (Sandbox Code Playgroud)