Spring BootでFlywayのマイグレーションを起動時に明示的に実行する方法




起動時にマイグレーション

FlywayはSpring Bootの起動時にデフォルトでマイグレーションを実行してくれます。

今回はこのマイグレーションを明示的に実行する方法を説明します。

Flywayとは

データベースのマイグレーションとそのバージョン管理を行ってくれるツールです。詳細は下記リンクを参照してみてください。

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

環境

  • Kotlin 1.1.3-2
  • JDK 1.8
  • Spring Boot 1.5.6
  • Flyway 3.2.1

起動時に処理を追加する方法

起動時に処理を追加するには起動ファイルになっているApplicationクラスにコードを記述します。コードはKotlinで記述しています。

package com.sample

import com.sample.config.MySqlDatabaseConfig
import org.flywaydb.core.Flyway
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication

@SpringBootApplication
class SampleApplication  {

    fun run() {
        val flyway: Flyway = Flyway()

        // DB情報を引数に渡す
        flyway.setDataSource("url",  "user", "password")
        flyway.migrate()
    }

}

fun main(args: Array<String>) {
    SpringApplication.run(SampleApplication::class.java, *args)
}

起動時に処理を追加する場合はrunメソッドの中で実行したい処理を実装すればいいので上記だけ大丈夫です。

これで起動時に明示的にマイグレーションを実行できるようになります。以上です。

おすすめ書籍

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にブロックチェーンエンジニアとして入社。






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




コメントを残す

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