大原則
データベースを直接いじってはいけない。マイグレーション(ファイル)経由で変更する。
調べる(やる)こと
具体例は出さないので、詳細は各自で掘ってください。以下の記述の順番には意味はありません。
エラーメッセージを読む
ある意味これだけで全て完結するのですが……。とにかくエラーメッセージを読みましょう。全てはそれからです。
db:migrate:status をする
$ rails db:migrate:status
を実行してマイグレーションの進行状況をチェックします。もし Migration Name
に ********** NO FILE **********
と出た場合は対処が必要です。
以下の記事が参考になります。
データベース内の schema_migrations というテーブルを見る
データベース内に schema_migrations
というテーブルがあるのでそこを見ます。実行された Migration ID
が並んでいます。
マイグレーションファイルをチェックする
ある程度「あたり」がついたらマイグレーションファイルをチェックし、データベースや上記の情報と照合します。マイグレーションファイルを書き換えるのは危険ですが、特殊な場合にはありかと思います*1。
慌てない
あのエラーメッセージがガーッと出ると焦ってしまって目に見えるエラー内容を潰そうとして DB を直接いじる愚行を犯しがちですが*2、慌てないで一つ一つ調べたほうがいいです。そしてそういう事態を想定して Capistrano を使うなどしてサービスの停止は避けましょう。