回答:
私rake db:reset
はデータベースをドロップしてから再作成し、seeds.rbファイルを含めて使用します。
http://guides.rubyonrails.org/migrations.html#resetting-the-database
すべてを削除して、データベースとシードを両方で再作成できます。
rake db:reset
:schema.rbからロードrake db:drop db:create db:migrate db:seed
:マイグレーションからのロードdb(rails server、sql client ..)への接続がないことを確認してください。そうしないと、dbはドロップしません。
schema.rbは、以下によって生成されるデータベースの現在の状態のスナップショットです。
rake db:schema:dump
データをリロードするためだけにシバン全体を削除して再作成したくない場合は、seed.dbファイルでMyModel.destroy_all
(またはdelete_all
)を使用して、MyModel.create!(...)
ステートメントがデータをロードする前にテーブルをクリーンアップできます。その後、db:seed
操作を何度もやり直すことができます。(明らかに、これはデータをロードしたテーブルにのみ影響し、残りのテーブルには影響しません。)
https://stackoverflow.com/a/14957893/4553442に「ダーティーハック」があり、上下に移行するのと同様の「シード解除」操作を追加しています...
rake db:reset
ローカルデータベースを削除し、ロードされたデータで新たに開始する場合に使用できますdb/seeds.rb
た。これは、まだスキーマを理解していて、既存のモデルにフィールドを追加する必要がある場合に便利なコマンドです。
リセットコマンドを使用すると、次のことが行われます。データベースrake db:drop
の削除:スキーマの読み込み:rake db:schema:load
データのシード:rake db:seed
ただし、データベースを完全に削除する場合は、を使用できますrake db:drop
。データベースを削除すると、スキーマの競合や不良データも削除されます。持っているデータを保持したい場合は、このコマンドを実行する前に必ずバックアップしてください。
これは、最も重要なrakeデータベースコマンドに関する詳細な記事です。