Movatterモバイル変換


[0]ホーム

URL:


プログラミングと投資

テクノロジーを使って、投資の分析をしています。

トップ>Java>SpringBoot FlywayでDBのマイグレーションをする方法

SpringBoot FlywayでDBのマイグレーションをする方法

Spring Boot の Webアプリで、Flyway を使ってデータベースのマイグレーションをする方法を書いていきます。

バージョン

動作確認で使用した製品のバージョンは以下の通りです。

1. ビルドファイルの作成

プロジェクトのフォルダspring-flyway を作成して、その下にMaven のビルドファイルを作成します。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>3.0.1</version>    <relativePath/> <!-- lookup parent from repository -->  </parent>  <groupId>org.example</groupId>  <artifactId>spring-flyway</artifactId>  <version>1.0.0</version>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>    <java.version>17</java.version>  </properties>  <dependencies>    <dependency>      <groupId>org.flywaydb</groupId>      <artifactId>flyway-core</artifactId>    </dependency>    <dependency>      <groupId>org.postgresql</groupId>      <artifactId>postgresql</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-data-jpa</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>    </plugins>  </build></project>

以下のライブラリを依存性に追加すると、アプリの起動時にマイグレーションが実行されます。

  • flyway-core
  • Spring Boot のJPAJDBC

2.SQLファイルの作成

マイグレーション用のSQLファイルを作成します。

src/main/resources/db/migration/V1__Create_student_table.sql

CREATE TABLE student (  id bigserial PRIMARY KEY,  name varchar(60) NOT NULL,  update_time timestamp NOT NULL DEFAULT current_timestamp,  create_time timestamp NOT NULL DEFAULT current_timestamp);

2.1. ファイルの配置場所

SQLファイルは、クラスパス配下のdb/migrationディレクトリに配置します。

2.2. ファイルの命名規則

SQLファイルの命名規則は以下の通りです。

V{バージョン番号}__{任意の文字列}.sql

バージョン番号と文字列の間は、半角のアンダースコア2つです。

3. 設定ファイルの作成

PostgreSQL に接続するための設定ファイルを作成します。

src/main/resources/application.properties

spring.datasource.url=jdbc:postgresql://localhost:5432/flywayspring.datasource.username=usrspring.datasource.password=pass

4. 起動クラス

Spring Boot のアプリを起動するクラスを作成します。

src/main/java/org/example/SpringApp.java

package org.example;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclass SpringApp {publicstaticvoid main(String[] args) {    SpringApplication.run(SpringApp.class, args);  }}

5. アプリの起動

起動クラスを実行するか、以下のコマンドでアプリを起動します。

mvn spring-boot:run

6. DBの確認

PostgreSQL のコマンド\d で、テーブルが作成されていることを確認しました。

プロフィール
id:mamorumsid:mamorums

記事を見ていただけて嬉しいです。よろしくお願いします。

検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp