4
我在理解如何在rails中使用seed.rb
腳本時遇到一些困難。使用seed.rb時的最佳做法
到目前爲止,每次部署我的應用程序時,我都用它來填充我的數據庫。
像這樣。
seed.rb
["Video", "Tv"].each do |thing|
Category.create(name: thing)
end
category.rb
class Category < ActiveRecord::Base
validates_uniqueness_of :name
end
腳本現在可以拼命地跑每部署或拉。 開發團隊中的任何人現在都可以添加他們自己的類別,而不必擔心重複。
像這樣。
人一
- 添加
Table
類別seed.rb
。 - 提交併推送給主。
人2
- 拉主。
- 運行
rake db:migrate
和rake db:seed
以確保本地數據庫是最新的。 - 將應用程序部署到生產服務器。正在服務器上運行
rake db:seed
以確保最新的數據庫。
該工作流程是否可以,如果不是,我應該在哪裏放置新數據以確保每個開發人員都擁有最新的數據庫?
使用一個字段只是一個例子。例如,我可以在桌上有一個「主動」字段。 'active'字段在運行時可能會更改,這意味着運行'Category.find_or_create_by_name_and_active(name,active)'可能會產生重複。 – Oleander 2011-04-19 21:26:39
如果這個唯一的屬性是'name',那麼你可以... '[「Video」,「Tv」]。each do | name | category = Category.find_or_initialize_by_name(name) category.update_attributes(...) end' – 2011-04-20 10:21:08