Skip to content

nhinata/spring_boot_todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

概要

Spring BootによるTODOアプリ

TODOアプリ ローカル環境構築手順

TODOアプリ 機能一覧

開発環境

  • IDE IntelliJ
  • java 11
  • maven 3.6.3
  • mysql Ver 8.0.23 for osx10.14 on x86_64 (Homebrew)

flyway を使用したDBマイグレーション管理

flyway とは

  • データベースマイグレーションツール
    データベースの状態をバージョン管理します

説明

  1. 設定
    1. 場所
      1. pom.xml
        <configuration>
            <url>jdbc:mysql://localhost/...</url>
            <user>root</user>
            <password></password>
        </configuration>
        
      2. ローカルの場合 -> ${このリポジトリの絶対パス}/pom.xml
    2. 内容: 対象のデータベース, ユーザとパスワード
  2. 管理するVersioned Migrationファイル
    1. 場所
      1. Versioned Migrationファイル
      2. ローカルの場合 -> ${このリポジトリの絶対パス}/todo/src/main/resources/db/migration/ 配下のファイル
    2. 内容: 管理したいSQLが記述されている

マイグレーションの適用例

※ 実際に以下 1,2 を実行してください

1. 確認用DBの用意

// 起動
mysql.server start

// ログイン (flyway.confに設定されているユーザ名)
mysql -uroot #root実行

// データベース作成 (flyway.confに設定されているDB名)
CREATE DATABASE ...;

2. マイグレーションの適用

  1. ローカルへコピーしたこのリポジトリの配下に移動
    実行コマンド: cd ${このリポジトリの絶対パス}
  2. baselineコマンドでバージョン管理テーブルを作成
    実行コマンド: mvn flyway:baseline
  3. infoコマンドでflywayのマイグレーション管理用テーブルの内容を確認
    実行コマンド: mvn flyway:info
    1. ${このリポジトリの絶対パス}/todo/src/main/resources/db/migration/ 配下の Versioned Migrationファイル が表示されています.
    2. 実行されていないため、 State が Pending になっています
  4. migrateコマンドでマイグレーションを実行する
    実行コマンド: mvn flyway:migrate
    1. State が Pending のVersioned Migrationファイル が実行されます.
    2. 再度 mvn flyway:info コマンドを実行することで State が Success に変化していることを確認することができます.
    3. 実際にDBに入ると対象のテーブルが作成,レコードが追加されていることが確認できます.

参考資料

  1. プラグイン追加から初回マイグレーション実行まで
  2. コマンドメモ
  3. 公式ドキュメント

Spring Data JPAについて

実装方法、Entity,Repository についての説明

ライブラリの追加方法について

チーム開発では外部ライブラリの導入が可能です。

  1. 追加方法
    例: ログインページ実装 の際、 SpringSecurity というライブラリを使用する場合
    1. pom.xml に以下を追加します。 参考リンク
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
       </dependency> 
      

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published