Spring Boot Flyway 数据库

Flyway 是一个版本控制应用程序,可在所有实例中轻松可靠地发展数据库模式。 要了解有关 Flyway 的更多信息,您可以使用链接 - www.flywaydb.org

许多软件项目使用关系数据库。 这需要处理数据库迁移,通常也称为模式迁移。

在本章中,我们将详细了解如何在 Spring Boot 应用程序中配置 Flyway 数据库。


配置 Flyway 数据库

首先,从 Spring Initializer 页面 www.start.spring.io 下载 Spring Boot 项目并选择以下依赖项 -

  • Spring Boot Starter Web
  • Flyway
  • MySQL
  • JDBC

Maven 用户可以在 pom.xml 文件中添加以下依赖项。

<dependency>
   <groupId>org.flywaydb</groupId>
   <artifactId>flyway-core</artifactId>
</dependency>

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
</dependency>

Gradle 用户可以在 build.gradle 文件中添加以下依赖项。

compile('org.flywaydb:flyway-core')
compile('org.springframework.boot:spring-boot-starter-jdbc')
compile('org.springframework.boot:spring-boot-starter-web')
compile('mysql:mysql-connector-java')

在应用程序属性中,我们需要配置用于创建 DataSource 的数据库属性以及我们需要在应用程序属性中配置的 flyway 属性。

对于属性文件用户,在 application.properties 文件中添加以下属性。

spring.application.name = flywayapp  

spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/USERSERVICE?autoreconnect=true
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.testOnBorrow = true
spring.datasource.testWhileIdle = true
spring.datasource.timeBetweenEvictionRunsMillis = 60000
spring.datasource.minEvictableIdleTimeMillis = 30000
spring.datasource.validationQuery = SELECT 1
spring.datasource.max-active = 15
spring.datasource.max-idle = 10
spring.datasource.max-wait = 8000

flyway.url = jdbc:mysql://localhost:3306/mysql
flyway.schemas = USERSERVICE
flyway.user = root
flyway.password = root

YAML 用户可以在 application.yml 文件中添加以下属性。

spring:
   application:
      name: flywayapp  
   datasource: 
      driverClassName: com.mysql.jdbc.Driver
      url: "jdbc:mysql://localhost:3306/USERSERVICE?autoreconnect=true"
      password: "root"
      username: "root"
      testOnBorrow: true
      testWhileIdle: true
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 30000
      validationQuery: SELECT 1
      max-active: 15
      max-idle: 10
      max-wait: 8000
flyway:
   url: jdbc:mysql://localhost:3306/mysql
   schemas: USERSERVICE
   user: "root"
   password: "root"

现在,在 src/main/resources/db/migration 目录下创建一个 SQL 文件。 将 SQL 文件命名为“V1__Initial.sql”

CREATE TABLE USERS (ID INT AUTO_INCREMENT PRIMARY KEY, USERID VARCHAR(45));
INSERT INTO USERS (ID, USERID) VALUES (1, 'jiyik.com');

下面给出主要的 Spring Boot 应用程序类文件代码

package com.jiyik.flywayapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class FlywayappApplication {
   public static void main(String[] args) {
      SpringApplication.run(FlywayappApplication.class, args);
   }
}

现在,我们可以创建一个可执行的 JAR 文件,并使用以下 Maven 或 Gradle 命令运行 Spring Boot 应用程序。

对于 Maven,使用下面给出的命令

$ mvn clean install

成功之后,我们可以在 target 目录下找到 JAR 文件。

对于 Gradle,使用下面给出的命令

$ gradle clean build

现在,使用以下命令运行 JAR 文件

$ java –jar <JARFILE> 

查看笔记

扫码一下
查看教程更方便