環境
Docker Desktop 4.35.1 (173168)
Debian GNU/Linux 12 (bookworm)
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
Rails 7.1.5
事象
今回は2つのテーブルのカラムを追加したり削除したりしてデータパッチするmigrationを実行後、rollbackしようとしたらエラーになった。
# rails db:rollback
== 20241124220824 XXXXXXXXXXXXXXXXXX: reverting ===========================
bin/rails aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)
このマイグレーション(20241124220824)をなかったことにしたい。
対応
- 手動でSQLを実行し、カラム追加・削除、データパッチを戻す。(ここは頑張る)
- データベースのschema_migrationsテーブルから、
20241124220824のレコードを削除する。 -
db/schema.rbのversionを1つ前のマイグレーションファイルに戻す。
書き換え前:書き換え後:ActiveRecord::Schema[7.1].define(version: 2024_11_24_220824)ActiveRecord::Schema[7.1].define(version: 2024_11_24_004258)