💻

FlywayのサンプルをSQLiteでやってみる

2021/01/31に公開

FlywayはJDBCを使ったデータベースマイグレーションツール。FlywayのページにはH2+Gradleのサンプルが書いてあるがSQLiteでやってみた。

apply plugin: 'java'
apply plugin: "org.flywaydb.flyway"

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath group: "org.flywaydb", name: "flyway-gradle-plugin", version: "4.0.3"
        classpath group: 'org.xerial', name: 'sqlite-jdbc', version: '3.8.11.2'
    }
}

repositories {
    mavenCentral()
}

flyway {
    url = "jdbc:sqlite:./target/sample.db"
}

flywayのpluginを導入するがpluginの定義に注意。Flywayのサイトにはplugins{}を使ってあるがエラーが発生した。原因を調べるのも面倒なのでGradleのドキュメントに説明してある方法でpluginを定義してある。

次にmigrationのSQLのファイルを作成する。

create table PERSON (
    ID int not null,
    NAME varchar(100) not null
);

このあとにmigrationを実行する。

$ gradle flywayMigrate 

テーブルの作成を確認する。

$ sqlite3 target/sample.db '.schema PERSON'
CREATE TABLE PERSON (
    ID int not null,
    NAME varchar(100) not null
);

次にデータを挿入するファイルを作成する。

create table PERSON (
    ID int not null,
    NAME varchar(100) not null
);

このあと同様にmigrationを実行する。

$ gradle flywayMigrate 

テーブルの中身を確認する。

$ sqlite3 target/sample.db 'select * from person'
1|Axel
2|Mr. Foo
3|Ms. Bar

基本的に何も変わらない。H2をごちゃごちゃするよりSQLiteのほうが楽だったので試してみた。

参考

GitHubで編集を提案

Discussion