データベースのテーブルに新しい列を追加するために Rails データベースの移行を作成しましたが、予想よりもはるかに時間がかかっていることに気付き (15 分以上)、移行を実行している ruby プロセスを手動で強制終了しました。その後、テーブルのデータ量のせいでランタイムが異常ではないことに気付き、もう一度開始してみました。今、私はエラーが発生します:
Mysql::Error: Duplicate column name 'new_column': ALTER TABLE `table_name` ADD `new_column` varchar(255)
ただし、手動で MySQL にアクセスするdesc table_name
と、列が存在しないことが示され、手動でドロップしようとすると ( alter table table_name drop new_column
) 、次のように表示されます。
ERROR 1091 (42000): Can't DROP 'new_column'; check that column/key exists
最初の追加プロセスを中止すると、一貫性のない状態になったようです。これを解決するにはどうすればよいですか?
編集:手動で追加(上記のエラーからDDLを正確にコピー)してから、MySQLプロンプトで列を削除しようとしましたが、両方とも正常に機能しましたが、rake db:migrate
引き続き上記のエラーが発生します。