0
0

More than 1 year has passed since last update.

間違えてmigrateした時の対処法について(初心者向け)

Last updated at Posted at 2022-07-25

始めに

ポートフォリオ作成中に間違ったマイグレーションファイルmigrateしてしまった。
恐らく、今後も同じ様な失敗をすると考えられるため忘備録として記事にしました。

そもそもモデルマイグレーションファイルマイグレーションとは

単語 意味
Model (名) (服装品・自動車などの)…型、雛形
migration (名) 移住、転住、渡り、移住者群、移動する動物の群
migrate (動) (…へ)移住する、定期的に(…に)移動する、渡る
マイグレーションファイル データベースの更新処理を行う設計図のようなもの。これをmigrateすれば、SQLを書かなくてもデータベースにテーブルが設計できる。

つまり

  • モデル主に データベースのデータのやり取りを行う機能を担っている。
  • マイグレーションはSQLを書かなくてもデータベースの構造を操作できる便利な機能のこと。
  • その操作して反映する作業migrateといい。
  • マイグレーションファイルは反映する内容が書いてある設計図ということになる。

私が今回失敗した内容は

誤った設計図(マイグレーションファイル)を渡してしまい、反映(migrate)してしまった。

ここから修正方法

まずは現状の把握

rails db:versionとコマンド入力します。

ターミナル
rails db:version

Running via Spring preloader in process 24830
Current version: 20220725031230

するとCurrent version: 20220725031230:現在のバージョンは日時、と表示されます。

巻き戻そう

次に反映した状況を 一つ前の状態 に巻き戻しますrails db:rollback

ターミナル
rails db:rollback

rails db:rollbackRunning via Spring preloader in process 24982
== 20220725031230 ResetAllPostCacheCounters: reverting ========================
== 20220725031230 ResetAllPostCacheCounters: reverted (0.0051s) ===============

これで間違った設計図を反映する前の状態に巻き戻せたはずです。
状況を確認するために以下のコマンドを入力します

ターミナル
rails db:abort_if_pending_migrations   (もし保留中の設計図がある場合は中止する)

You have 1 pending migration:
  20220725031230 ResetAllPostCacheCounters
Run `bin/rails db:migrate` to update your database then try again.

以下翻訳
1件のマイグレーションが保留されています。 20220725031230 ResetAllPostCacheCounters ←(ミスった設計図)bin/rails db:migrate を実行してデータベースを更新してから、もう一度試してみてください。

これでどうなった、、、

現状確認の結果、rails db:rollback反映状況が一つ巻き戻され、先ほどの誤った設計図は保留中となっている様です。

間違って渡してしまった設計図:マイグレーションファイルの中身を修正して反映させて作業は完了となります。
お疲れ様でした。

おわり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0