📘
Rails なぜdb:migrate:redoが通るようにしておくべきか
Railsのアプリケーション開発では、常にrails db:migrate:redo
コマンドが通るようにしておくのが良いプラクティスとされている。これはなぜだろうか?
その理由には、マイグレーションの可逆性が挙げられる。可逆性とは、状態が変化しても元の状態に戻すことができる状態のことを指す。
つまり、いつでもロールバックできるようにしておくということ。マイグレーションを可逆的な状態にしておくこと。Railsのコマンドでいえばrails db:rollback
だ。
マイグレーションが可逆的な状態である場合、開発中にうまくいかなかったとき、すぐロールバックできる。素早く元に戻せることで、より自由に実験できる。
デプロイ中に問題が発生してデータベースをロールバックする必要が出たときにもすぐ対処できる。
また、「いつでもロールバックできる状態」であるということは、開発者の心理的安定性にもつながる。
つまり、rails db:migrate:redo
が通るようにしておくと、開発プロセスの中で安全性と効率性を高めることができる。
ちなみに、「可逆的」は英語で「reviersible」と言う。エンジニアならどこかで聞いたことがある単語ですね。
Discussion