次のことが当てはまるようです:
-
20120525005302_create_users.rb
users
の作成を試みます データベース内のテーブル。 -
20120611000411_devise_create_users.rb
users
の作成も試みます データベース内のテーブル。 - 現在、データベースにはすでに
users
がいます。 テーブルが含まれているため、2回目の移行で移行が失敗します。
users
を取得するには 20120611000411_devise_create_users.rb
に適切に対応するデータベース内のテーブル 移行では、次の2つのいずれかを実行できます。
- データベースをロールバック(またはドロップ)してから、移行を再実行します。 (
20120525005302_create_users.rb
を削除できます 空の場合。) -
20120611000411_devise_create_users.rb
を変更します 既存のusers
を削除するための移行 他のことをする前にテーブル。 -
20120611000411_devise_create_users.rb
を変更します 次のように移行します:users
を作成する代わりに テーブル、既存のテーブルを変更します。- 対応するデータベースコンポーネントを追加および変更します
一般に、アプリケーションが「幼児状態」にある場合、データベースを再作成することは、アプリケーションの初期構造を構築するための迅速な方法になる傾向があります。ただし、users
にすでに重要なデータがある場合 テーブルの場合は、それを保持して、20120611000411_devise_create_users.rb
を変更して続行します。 データベースを非破壊的に変更するための移行。
参考資料