Spring BootによるTODOアプリ
- IDE IntelliJ
- java 11
- maven 3.6.3
- mysql Ver 8.0.23 for osx10.14 on x86_64 (Homebrew)
- データベースマイグレーションツール
データベースの状態をバージョン管理します
- 設定
- 場所
- pom.xml
<configuration> <url>jdbc:mysql://localhost/...</url> <user>root</user> <password></password> </configuration>
- ローカルの場合 ->
${このリポジトリの絶対パス}/pom.xml
- pom.xml
- 内容: 対象のデータベース, ユーザとパスワード
- 場所
- 管理するVersioned Migrationファイル
- 場所
- Versioned Migrationファイル
- ローカルの場合 ->
${このリポジトリの絶対パス}/todo/src/main/resources/db/migration/
配下のファイル
- 内容: 管理したいSQLが記述されている
- 場所
※ 実際に以下 1,2 を実行してください
// 起動
mysql.server start
// ログイン (flyway.confに設定されているユーザ名)
mysql -uroot #root実行
// データベース作成 (flyway.confに設定されているDB名)
CREATE DATABASE ...;
- ローカルへコピーしたこのリポジトリの配下に移動
実行コマンド:cd ${このリポジトリの絶対パス}
- baselineコマンドでバージョン管理テーブルを作成
実行コマンド:mvn flyway:baseline
- infoコマンドでflywayのマイグレーション管理用テーブルの内容を確認
実行コマンド:mvn flyway:info
${このリポジトリの絶対パス}/todo/src/main/resources/db/migration/
配下の Versioned Migrationファイル が表示されています.- 実行されていないため、 State が Pending になっています
- migrateコマンドでマイグレーションを実行する
実行コマンド:mvn flyway:migrate
- State が Pending のVersioned Migrationファイル が実行されます.
- 再度
mvn flyway:info
コマンドを実行することで State が Success に変化していることを確認することができます. - 実際にDBに入ると対象のテーブルが作成,レコードが追加されていることが確認できます.
実装方法、Entity,Repository についての説明
チーム開発では外部ライブラリの導入が可能です。