Spring BootでFlywayを使用したMySQLのマイグレーション




Flywayとは?

FlywayはDBのマイグレーションを行うツールです。DBの状態をバージョン管理でき、ツール経由でSQLを実行するので手作業によるミスを減らすことができます。

1. インストール

Spring BootでのFlywayの導入方法は下記を参考してください。Springスターター・プロジェクトを使うとすごく簡単に導入できます。

EclipseでSpring BootとKotlinの環境構築

2. 使い方

FlywayをSpring Bootで使う場合、resources配下にdb/migrationフォルダを作成して、その中に実行したいSQLファイルを配置していきます。

CREATE TABLE user (
  id INTEGER,
  name CHAR(20),
)

ファイル名にはバージョン情報を含めるので命名に決まりがあります。

V1.0.0__user.sql

上記ファイル名のように__(アンダースコア2つ)の左側がバージョン情報、右側はファイルの中身が分かるように好きに決めていいです。

次にDBへの接続情報をapplication.propertiesに設定します。

spring.datasource.driver-class-name=com.mysql.jdbc.Driver // MySQLのドライバ
spring.datasource.url=jdbc:mysql://localhost:3306/flywaytest //DB名
spring.datasource.username=root // ユーザー名
spring.datasource.password=password // パスワード

 

MySQL上にDBを作っていない場合は下記コマンドで作成しておいてください。

CREATE DATABASE flywaytest;

3. 実行

設定が完了したらあとはSpringを起動するだけでSQLが実行されてflywaytestにuserテーブルが作成されます。Flywayは同じデータベース内に実行したSQLファイルを記録しているので同じSQLを実行することがないように制御されています。

これで複数人でテーブルを追加しながら開発を行っていても、マージして起動後には同じデータベースの状態にすることができます。

おすすめ書籍

JPAに関して体系的に学べる良い書籍だと思います。良くあるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。これからJPAで開発を初めてみようかなと考えている方は一読することをオススメします!

Springの概要からインストール方法、各コア機能(Security, Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。これからSpring Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。対象は初心者だけでなく上級者まで幅広く学べるので是非読んでみてください!

 

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です