DBマイグレーション

flywayのバージョンを変更する

Spring Boot 1.5.6では、Flyway v3.2.1が依存関係に入っているが、 下記の設定をbuild.gradleに指定することでバージョンを引き上げられる。 (Flyway v4では、リピータブルマイグレーションが利用できる)

ext["flyway.version"] = "4.2.0"

マイグレーションファイル

下記のような内容のマイグレーションファイルR__1_create_tables.sqlsrc/main/resources/db/migrationに配置する。 Rで始まるファイルは、リピータブルマイグレーションが実施される。

CREATE TABLE IF NOT EXISTS users(
  user_id INT(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '顧客ID'
  , first_name VARCHAR(40) NOT NULL COMMENT '名前'
  , last_name VARCHAR(40) NOT NULL COMMENT '苗字'
  , email VARCHAR(100) DEFAULT NULL COMMENT 'メールアドレス'
  , password VARCHAR(100) DEFAULT NULL COMMENT 'パスワード'
  , tel VARCHAR(20) DEFAULT NULL COMMENT '電話番号'
  , zip VARCHAR(20) DEFAULT NULL COMMENT '郵便番号'
  , address VARCHAR(100) DEFAULT NULL COMMENT '住所'
  , upload_file_id INT(11) unsigned DEFAULT NULL COMMENT '添付ファイル'
  , password_reset_token VARCHAR(50) DEFAULT NULL COMMENT 'パスワードリセットトークン'
  , token_expires_at DATETIME DEFAULT NULL COMMENT 'トークン失効日'
  , created_by VARCHAR(50) NOT NULL COMMENT '登録者'
  , created_at DATETIME NOT NULL COMMENT '登録日時'
  , updated_by VARCHAR(255) DEFAULT NULL COMMENT '更新者'
  , updated_at DATETIME DEFAULT NULL COMMENT '更新日時'
  , deleted_by VARCHAR(255) DEFAULT NULL COMMENT '削除者'
  , deleted_at DATETIME DEFAULT NULL COMMENT '削除日時'
  , version INT(11) unsigned NOT NULL DEFAULT 1 COMMENT '改訂番号'
  , PRIMARY KEY (user_id)
  , KEY idx_users (email, deleted_at)
) COMMENT='顧客';

flywayの設定

サンプルでは開発環境のみでの利用を想定する。 下記の設定を指定するとアプリケーションの起動時にFlywayのマイグレーションが実施される。

spring.flyway.enable=true