4

seed.rbレールでスクリプトを使用する方法を理解するのに苦労しています。

これまでのところ、アプリケーションをデプロイするたびにデータベースにデータを入力するために使用してきました。

このような。

シード.rb

["Video", "Tv"].each do |thing|
  Category.create(name: thing)
end

カテゴリ.rb

class Category < ActiveRecord::Base
  validates_uniqueness_of :name
end

デプロイまたはプルごとにスクリプトを実行できるようになりました。開発チームの誰もが、重複を心配することなく独自のカテゴリを追加できるようになりました。

このような。

人 1

  • Tableにカテゴリを追加しますseed.rb
  • コミットしてマスターにプッシュします。

人 2

  • プルマスター。
  • rake db:migrateおよびを実行rake db:seedして、ローカル データベースが最新であることを確認します。
  • アプリケーションを本番サーバーにデプロイします。rake db:seed最新のデータベースを確保するためにサーバー上で実行されています。

このワークフローは大丈夫ですか? そうでない場合、すべての開発者が最新のデータベースを使用できるようにするには、新しいデータをどこに配置すればよいですか?

4

1 に答える 1

5

重複するカテゴリを作成しようとせずに複数回実行できるように、シードを作成することをお勧めします...

["Video", "Tv"].each do |thing|
  Category.find_or_create_by_name(thing)
end
于 2011-04-19T21:21:32.213 に答える