166

データベース テーブルのデータを消去する rake コマンドはありますか?

テーブルにデータを事前入力する db:seed スクリプトを作成するにはどうすればよいですか?

4

7 に答える 7

292

私はこれを使用rake db:resetして、データベースを削除してから再作成し、seeds.rbファイルを含めます。 http://guides.rubyonrails.org/migrations.html#resetting-the-database

于 2010-10-23T13:45:01.180 に答える
168

すべてを削除して、データベースとシードを両方で再作成できます。

  1. rake db:reset: schema.rb から読み込みます
  2. rake db:drop db:create db:migrate db:seed: 移行からの読み込み

データベース(レールサーバー、SQLクライアントなど)への接続がないことを確認してください。そうしないと、データベースがドロップされません。

schema.rb は、次によって生成されたデータベースの現在の状態のスナップショットです。

rake db:schema:dump
于 2013-05-14T13:48:39.310 に答える
8

データをリロードするためだけにシバン全体をドロップして再作成したくない場合は、ステートメントがデータをロードする前に、seed.db ファイルでMyModel.destroy_all(または) を使用してテーブルを消去できます。その後、何度でも操作をやり直すことができます。(明らかに、これはデータをロードしたテーブルにのみ影響し、残りのテーブルには影響しません。)delete_allMyModel.create!(...)db:seed

https://stackoverflow.com/a/14957893/4553442に「ダーティ ハック」があり、上下の移行に似た「シード解除」操作を追加します...

于 2016-03-05T00:20:16.760 に答える