flyway-sbtによるDBマイグレーションを試してみる

はじめに

Nyle
Nyle
May 31, 2016 · 9 min read

前回から少し間が空いてしまいました。。最近、flywayによるマイグレーションを試してみたところなかなかいい感じだったので、ちょっと紹介しようと思います。データベースのマイグレーションツールをまだ使ったことがない人に、その便利さが伝われば良いなと思います。

最初は公式の First Steps: SBT をなぞりつつ、それよりは少しだけ踏み込みながら実際の使用例を考えてみましょう。

(アイコンやサンプルコード等は公式ページのものをいくつか使用させていただきました)

Flywayとは

Flywayはデータベースのマイグレーション管理ツールです。スキーマにバージョンをつけて、今どのバージョンになっているかを確認したり、新しいバージョンへマイグレーションを行ったり、マイグレーションがいつ行われたのかを記憶しておいたりすることができます。

Flywayはコマンドラインツールとしても動作できますが、各種ブラグインも用意されています。今回はその中から、ScalaではおなじみであろうSBTのプラグインである flyway-sbt を使って、実際にマイグレーションを試してみようと思います。

用意するもの

まずはSBTプラグインを追加します。 project/plugins.sbt に以下を追記してください。(ファイルがなければ作りましょう)

addSbtPlugin("org.flywaydb" % "flyway-sbt" % "4.0.1")

初回の動きを見てみる

早速ですが、この状態でまずは実行してみます。マイグレーションを行うには flywayMigrate  を実行します。
  • バージョン1まで成功していること
  • バージョン1の説明とその実行日時
  • どうやらバージョン2以上はなさそうだということ
最後はどうしてなのか、というのを知るためにもバージョン2を準備してみましょう。

次のバージョンを準備する

これも公式に合わせ、新しく V2__Add_people.sql を作りましょう。

マイグレーションを実行する

では、実行してみましょう。

マイグレーションファイルの細かい話

マイグレーションファイルは V から始まり __  (アンダースコア二つ)までの間がバージョンになります。そして __  のあとに続く文字列がDescriptionとして扱われます。

Nyle Engineering Blog

ナイル株式会社のエンジニアブログです。ナイル社内で利用している技術の情報や、社内の様子などを発信しています。

Nyle Engineering Blog

ナイル株式会社のエンジニアブログです。ナイル社内で利用している技術の情報や、社内の様子などを発信しています。

Nyle

Written by

Nyle

Nyle Engineering Blog

ナイル株式会社のエンジニアブログです。ナイル社内で利用している技術の情報や、社内の様子などを発信しています。