Output Diary

プログラミング × 読書 のアウトプットを発信しています

【Rails】ロールバック

 
マイグレーションファイルを使って上げたバージョンを、
何らかの事情で戻す(=バージョンを下げる、適用したマイグレーションを取り消すこと)ことをいいます。
 
 
 
複数人で開発をしていると、
マイグレーションを要因としてトラブルが起きることが多いです。
 
 
一般的に、
開発者はデータベースのマイグレーションを上げることに注意が向いているので、ロールバックが疎かになりがちです。
 
 
ロールバックを忘れてしまうと、
 
正しくないマイグレーションがチームで共有される
         ↓
 メンバー各人の環境でトラブル発生⚠
         ↓
      開発業務中断😱
         ↓
マイグレーションが解決するまで開発がスムーズに進められない状態に

 

 といったことにもなりかねません。
 
  
 
このようなロールバックできない!どうしよう!
といったトラブルを防ぐたために
 毎回ロードバックができるかどうか確認することが大切です。
 
 

確認手順

 
以下の手順で確認する癖を付けていきましょう。
 
  1. 「bin/rails db:migtate」
  2. 「bin/rails db:migrate:redo
 
 
1の「bin/rails db:migtate」で、
バージョンを上げる際
期待通り動作するかを確認します。
 
 
2の「bin/rails db:migrate:redo」で、
バージョンを下げる際
トラブルを起こさないか確認します。
 
 
db:migrate:redoコマンドは、
一旦バージョンを下げそのあとすぐにバージョンを上げてくれます。
 
そのため、
問題がないことを確認したら次の開発工程に進むことが出来ます。
 
 
 
といったことをロールバックの簡単な説明です!
毎回完全なロールバックができるとは限りません。
その時の状態を見極め最適な行動をとっていきましょう。
 

f:id:kina_kq:20210314081245p:plain