30

devise をインストールしたばかりだったので、テーブルには 1 人のユーザー (私) を除いてデータがありませんでした。

データベースを最初からやり直していたので、すべて削除しました。私はrails g scaffold6つの新しいモデルとコントローラーを生成し、実行しましたrake db:migrate

私の/db/migrateディレクトリには、ファイル名のdeviseファイルがあります20130603211907_devise_create_users.rb

問題は次のとおりです。これを行うrake db:migrate:down VERSION=20130603211907と、新しい移行がすべて削除されます。

新しい移行をすべて削除せずに、移行を再度実行するにはどうすればよいですか?

4

5 に答える 5

87

ダウンステップを実行してからアップステップを実行します(このコマンドはテーブルを削除できます!):

rake db:migrate:redo VERSION=xxxxxxx

テーブルが削除されないようにするには、ステップを一時的にコメントアウトすることdownと組み合わせてこれを行うことができます。

于 2013-06-07T09:52:40.723 に答える
11

みんな助けてくれてありがとう。これは私のために働いたものです:

警告: これらのコマンドは、データベース内のすべてのデータを削除します!

rake db:drop
rake db:create
rake db:migrate
于 2013-06-07T10:04:14.480 に答える
8

ローカルで開発していて、モデルからすべてのデータを削除しても害がない場合は、単純dropにデータベースを削除してから、最初からcreate&を実行できます。migrate

Ruby on Rails データベースを消去または再作成する

于 2013-06-07T09:52:40.970 に答える
8
rake db:migrate:up VERSION=20090408054532

これにより、すべてのファイルが VERSION=20090408054532 まで移行されます

checkout単一の移行ファイルを実行する

于 2013-06-07T09:54:59.313 に答える