にそれを取得するには、コマンドラインからrake db:seed
が実行されます他のデータに混在するような方法でデータを追加、変更、または削除する可能性があります。だからseeds.rbが出ている。使用する必要があるのは移行です。こうすることで、シーケンシャルプロセスを通じて変更したいデータを検索して識別することができます。移行は正確に設計されています。それ以外の場合は、レールコンソールから手動でデータを変更することをお勧めします。
編集:良い例は以下の通りです。
展開を処理するためにCapistranoを使用しています。システムに新しいカテゴリー、おもちゃを追加したいとします。マイグレーションファイルでは、Category.create(:name => "Toys")
などのマイグレーション機能をマイグレーション機能に追加します(私はRails 3.1でこれを呼び出すのを忘れていますが、ただ一つの方法しかありません)。rake db:migrate
をローカルで実行し、変更をテストしてからコミットしてください受け入れ可能な場合はcap:deploy
を使用して展開し、運用データベースに対して新しい移行を実行し、新しいカテゴリを挿入して、展開されたアプリケーションで使用できるようにします。
この例では、実際にはワークフローによって異なります。移行を介して新しいデータを追加してもアプリケーションがうまくいかないと思ったら、それを検討してください。 DHH(David Heinemeier Hansson)は、データベースの構造を変更するために厳密にそれを使用しているので、そのファンではありません。 DHHがRailsの作成者であることを知らなかったら。
EDIT 2: あなたがそれに慣れていない場合は、マイグレーションを使用するという概念をスキップできます。あなたは100%あなたのdb/seeds.rbファイルに頼ることができます。 "seeds.rb"と考えると、情報を作成することを考えますが、必ずしもそうである必要はありません。ちょうど盲目的にデータを作成するのではなく、関連するデータがすでに存在するかどうかを確認し、変更して保存しますが、存在しない場合は単純に新しいレコードを作成します。
デシベル/ seeds.rb
toys = Category.find_by_name("Toys")
if toys then
toys.name = "More Toys"
toys.save
else
Category.create(:name => "More Toys")
end
実行rake db:seeds
とそのコードが実行されます。データを変更するたびにseeds.rbファイルを一貫して更新するだけで、1)適切なデータ値を検索し、2)正しい属性を更新することができます。
最後に、これを行う正しい方法と間違った方法はありません。それはあなたとあなたのワークフローに適したものです。
確かに:どのようなシードがあるのかを見ると、本当にルビーファイルに有効なものを作成してから、それ自身を実行することができます。 new_categories.rb。レーキの仕事をして、それだけでもやることができます。 –
私は生産に使用するためには、アプリケーション内になければならないデータの種だけを使用します。あなたは、開発/テストデータ用のフィクスチャを使用するほうが良いかもしれません:http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures – Brian