2016-11-08 7 views
3

rake db:migrateを実行するたびに、特定のテーブルの外部キーを削除することでレールスキーマが更新されます。私は理由を理解することができないし、これが起こるのを防ぐ方法がわからない。rake db:migrateを実行するたびにRailsスキーマが意図せずに変更される

[1] http://imgur.com/BBssPdU

をどのように私はこの問題を解決することができますか?重複エラーが発生するため、参照を再追加するために別の移行を書き込むことはできません。

+0

'schema.rb'はデータベース内のものに基づいて生成され、マイグレーションには含まれません。これは、データベースに3つのFKがないことを示しています。データベースを直接調べて(つまり、Railsが見えない 'mysql' CLIツールを介して)、FKが実際に存在するかどうかを確認します。 –

+0

スキーマ*とFKを使用して、 'rails db:schema:load'を実行してください。 – ArtOfCode

答えて

0

完全な移行ファイルを投稿してください。

さらに、最後の移行前に、rake db:rollbackを使用してロールバックしてみましたか? (複数の移行をロールバックすることもできます。hereを参照してください)

CARE!ロールバックでデータベースからデータを削除することができます。そのようなことが起こらない場合は、おそらくこれが最善の解決策ではありません。

関連する問題