【まいぐれーしょん】
マイグレーション とは?
最終更新:
💡 システムやデータを、新しい環境・状態へ移す
システムやデータを別の環境・状態へ移す作業。クラウド移行、データの移行、DBのスキーマ変更の違いと、方式選定・検証・切り替えを解説します。
📌 このページのポイント
マイグレーションは、ITのお引っ越し?
データベースなら、全部同じ移行?
クラウドへは、どう移す?
代表例は、構成を大きく変えず移すリホスト、サービスを一部変えるリプラットフォーム、設計も見直すリファクター等だよ。方法が二つだけというわけではない。目的、互換性、費用、期間、運用する人の体制に合う方式を選ぶんだ。
DBの変更を順番に管理するって?
Railsでは、列やテーブルを変更するマイグレーションファイルを作り、どれを適用したか記録するよ。別の開発環境でも同じ変更を順に適用しやすくなる。ただしアプリのコードとDBの構造が合うよう、公開する順番も考える必要があるんだ。
失敗したら、戻せば大丈夫?
戻す処理を用意できる場合もあるけれど、削除したデータが必ず戻るわけではないよ。変更の影響、バックアップと復元、検証方法、切り替え・中止の条件を先に計画しよう。移行だけで必ず費用が減ったり、停止時間がなくなったりするわけでもないんだ。
もっと詳しく知りたい人へ
スキーマを戻せれば、削除したデータも戻る?
構造の変更を逆に実行できることと、以前の値を復元できることは別です。削除した列を作り直しても、その列にあった値が自動で復活するとは限りません。Railsにも不可逆な変更の扱いがあり、データの保存・復元を別に計画します。
適用済みのマイグレーションを、書き換えて再実行する?
Railsは適用した変更の版を記録するため、ファイルを書き換えただけでは同じ変更を再適用しません。共有・本番適用済みの変更は、新しいマイグレーションで修正するのが基本です。使用するツールの履歴管理と対象環境を確認します。
まとめ:ざっくりこれだけ覚えればOK!
「マイグレーション」って出てきたら「システムやデータを、新しい環境・状態へ移す作業」と思えばだいたいOK!
📖 おまけ:英語の意味
「Migration」 = 移行・移住
💬 ITではシステムの環境移行、データの移行、DBの構造変更等に使われます。「何を、どこへ、どの状態へ移すか」を確認すると意味をつかめます。