MyBatis Migrationの使い方とインストール手順
MyBatis Migrationは、データベースのスキーマ変更をバージョン管理するためのツールです。
ここでは、MyBatis Migrationの基本的な使い方をステップごとに説明します。
詳しい情報やオプションについては、MyBatis公式サイトを参照してください。
データベースマイグレーションツール比較表
まず、MyBatis Migrationを使うにあたって他のDDLと比較してこのような感じかなと思いました。
特徴 / ツール | MyBatis Migration | Flyway 無料版 | Flyway 有料版 | Liquibase |
---|---|---|---|---|
複数環境のDB管理 | ◯ | ◯ | ◯ | ◯ |
バージョン管理 | ◯ | ◯ | ◯ | ◯ |
ロールバック機能 | △ | × | ◯ | ◯ |
価格 | 無料 | 無料 | 有料 | 無料(基本版) |
カスタマーサポート | × | × | ◯ | × |
- MyBatis Migrationのロールバックは何でもできるが、手動でロールバックコードをマイグレーションファイルに書いていかないといけないのがイマイチ。
- Flywayの無料版はロールバックできず、有料版はそこそこの値段がする。
- Liquibaseは機能的に良いが、日本語の最新ドキュメントが少なすぎて一旦、MyBatis Migrationについて調べることにした。
ひとまず、ここではMyBatis Migrationの使用方法をまとめる。
Liquibaseについてはこちらで調べてます。
Flywayについてはこちらで調べてます。
インストール手順
必要条件
- Java 8以降がインストールされていること。
Windowsの場合
- MyBatis MigrationsのZIPファイルをダウンロードし、任意のディレクトリに解凍する。例:
C:\Program Files\mybatis
- システム環境変数に
MIGRATIONS_HOME
を追加し、値をC:\Program Files\mybatis\mybatis-migrations-{version}
に設定。 MIGRATIONS
環境変数に%MIGRATIONS_HOME%\bin
を設定。- システムのパスに
%MIGRATIONS%
を追加。
UnixベースのOS (Linux, Solaris, Mac OS X) の場合
- ZIPファイルをダウンロードし、任意のディレクトリに解凍する。例:
/usr/local/mybatis/mybatis-migrations-{version}
- コマンドターミナルで
MIGRATIONS_HOME
環境変数を追加。例:export MIGRATIONS_HOME=/usr/local/mybatis/mybatis-migrations-{version}
MIGRATIONS
環境変数を追加。例:export MIGRATIONS=$MIGRATIONS_HOME/bin
- システムのパスに
$MIGRATIONS
を追加。例:export PATH=$MIGRATIONS:$PATH
MyBatis Migrationsの使い方
マイグレーション環境の初期化
マイグレーションプロジェクトを始めるには、まずマイグレーション環境を初期化する必要があります。コマンドプロンプトまたはターミナルを開き、マイグレーションを実行したいディレクトリに移動して以下のコマンドを実行します:
migrate init
このコマンドは、マイグレーションに必要なディレクトリ構造と設定ファイルを生成します。生成される主なディレクトリとファイルには以下のものがあります:
- environments: データベース接続設定を含む環境設定ファイルが格納されます。
- scripts: マイグレーションスクリプトを格納するディレクトリ。
環境設定ファイルの編集
environments
ディレクトリ内の development.properties
(または他の環境に対応するプロパティファイル)を編集し、データベース接続情報を設定します。例えば:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/yourdatabase
username=root
password=yourpassword
ブートストラップ
既存のデータベーススキーマを初期化するためのSQLスクリプトを実行。
migrate bootstrap
マイグレーションスクリプトの作成
-
新しいマイグレーションスクリプトの作成
以下のコマンドを実行して新しいマイグレーションスクリプトを作成します。
migrate new "create blog table"
このコマンドにより、タイムスタンプ付きのファイルが作成されます。
-
スクリプトの編集
作成されたスクリプトファイルを開き、マイグレーション内容を記述します。
20230706094530_create_blog_table.sql
ファイルの内容は以下のようになります。
-- // create blog table CREATE TABLE BLOG ( ID INT PRIMARY KEY, NAME VARCHAR(255) NOT NULL ); -- //@UNDO DROP TABLE BLOG;
作成されたマイグレーションスクリプトには、実行内容とロールバック内容を記述する必要があります。スクリプトの構造は次の通りです。
-- // コメント -- 実行するSQL文 -- //@UNDO -- ロールバックするSQL文
-
マイグレーションの適用
以下のコマンドを実行してすべての未適用マイグレーションを適用します。
migrate up
-
マイグレーションのロールバック
以下のコマンドを実行して最後のマイグレーションを元に戻します。
migrate down
コメント
0 件のコメント :
コメントを投稿