db/seed.rb
ファイルを編集してrake db:seed
コマンドを実行して、テーブルにデータ行をシードしました。無意識のうちに、間違った情報をその行に入れます。だから私は以前に追加された行のデータを削除したい。 の場合はrake db:rollback
のようなレーキコマンドがありますか?以前にシードしたデータをRailsに元に戻す
1:
db/seed.rb
ファイルを編集してrake db:seed
コマンドを実行して、テーブルにデータ行をシードしました。無意識のうちに、間違った情報をその行に入れます。だから私は以前に追加された行のデータを削除したい。 の場合はrake db:rollback
のようなレーキコマンドがありますか?以前にシードしたデータをRailsに元に戻す
1:
はこれに側面がいくつかあります
あなたは、単にシードを更新した後rake db:seed
をやり直す必要があります。他のデータがデータベースに存在しないときは、シード・データを変更したいです.rbファイル。そのモデルに何かを追加する前に、MyModel.delete_all
があることを確認してください。
2:あなたは、シード・データを変更したいのですが、これは少し難しいですデータベース
に追加した他のデータがあります。多くの場合、ここでは最も簡単な方法は、手動で生のSQL文のいずれかで、またはPhpPpAdminのようなツールを使用してデータを変更することで、PhpMyAdminなど
今、一緒にこれをハックするpossiby一つの方法がありますそれはseed.rbファイルでいくつかのブードーをすることになります。
if ENV['deseed']
#Do your deseeding action here
else
#Do your seeding here.
end
は、あなたも本当の狂気を得る可能性があり、このような何か:だから、あなたのseed.rbで、rake db:seed deseed=true
を実行することができ
deseed = ENV['desee']
#DANGER: Dirty hacks upcoming:
deseed? myModelCall = MyModel.method(:destroy_all): myModelCall = MyModel.method(:create)
myModelCall.call :user_id_or_whatevs => 23 #this creates or deletes a MyModel entity with the given parameters
#NOTE this might not work in all cases and I would not necessarily recommend doing this.
#<3uby
ドロップデータベースを、再作成し、再びシード。 :) –
@Sergio Tulentsev:私は同意します。しかし、私は最後の種子を作る前に既に存在していたデータを保存しなければなりません。私は最後にシードされたデータを削除したいだけです。あなたは私にそれを手伝ってもらえますか? –
そのためのレーキタスクはありません。データを手動で検索して削除します。それが再び起こることが予想される場合は、スクリプトを書いてください。 –