データベースの文脈では、マイグレーションは通常、あるシステムから別のシステムへデータを移動するプロセス、または既存のデータの構造を変更するプロセスを指します。これは、新しいシステムへのアップグレード、異なるサーバーへの移行、データベース設計の変更、異なるタイプのデータベース技術への移行などさまざまな理由で必要となる場合があります。
ここでは、データベース移行の主な2つのタイプである「データ移行」と「スキーマ移行」に分類してみましょう。
データそのものには手を加えず、新しいシステムの要件に合わせてデータの形式を変更し、あるシステムから別のシステムへデータを移行することです。
例えば、ある組織では、古い顧客管理システムから新しいシステムへデータを移行することがあります。
この場合、実際の顧客データは変わりませんが、その形式は変わるかもしれません。
データを変更することなくデータベースのスキーマを変更することです。
データベースのスキーマとは、データベースの構造または設計図のことで、テーブル、フィールド、およびそれらの間の関係を含む、データの編成方法を定義しています。
新しいテーブルを追加したり、カラムを削除したり、フィールドのデータ型を変更したりする場合は、スキーマの移行を実行することになります。
たとえば、ECビジネスを展開している場合、データベースにCustomers
テーブルがあるとしFirstPurchaseDate
カラムを追加する必要があると仮定します。
SQLでは次のようなコマンドになります。
特に本番環境では、データの損失やダウンタイムを避けるために移行は非常に慎重に行う必要があることに留意してください。
そのため、データベースの移行は通常、実際に実施する前に十分に計画しテストします。また、何か問題が発生した場合にプロセスを元に戻すことができるように、移行を実行する前にバックアップを作成することがよくあります。