开发手册 欢迎您!
软件开发者资料库

Spring Boot - Flyway数据库

Spring Boot Flyway数据库 - 从简单和简单的步骤学习Spring Boot,从基本到高级概念,包括简介,快速入门,引导,Tomcat部署,构建系统,代码结构,Spring Bean和依赖注入,Runners,应用程序属性,日志记录等示例,构建RESTful Web服务,异常处理,拦截器,Servlet过滤器,Tomcat端口号,Rest模板,文件处理,服务组件,Thymeleaf,使用RESTful Web服务,CORS支持,国际化,调度,启用HTTPS,Eureka服务器,服务注册Eureka,Zuul代理服务器和路由,Spring云配置服务器,Spring云配置客户端,执行器,管理服务器,管理客户端,启用Swagger2,创建Docker镜像,跟踪微服务日志,Flyway数据库,发送电子邮件,Hystrix,Web套接字,批处理服务,Apache Kafka的Spring,Twilio,单元测试用例,休息控制器单元测试,数据库处理,保护我们b应用程序,带有JWT的OAuth2,Google云平台,Google OAuth2登录。

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

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

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

配置Flyway数据库

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

  • Spring Boot Starter Web

  • Flyway

  • MySQL

  • JDBC

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

   org.flywaydb   flyway-core   org.springframework.boot   spring-boot-starter-jdbc   org.springframework.boot   spring-boot-starter-web   mysql   mysql-connector-java   org.springframework.boot   spring-boot-starter-test   test

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')

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

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

spring.application.name = flywayapp  spring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.url = jdbc:mysql://localhost:3306/USERSERVICE?autoreconnect=truespring.datasource.username = rootspring.datasource.password = rootspring.datasource.testOnBorrow = truespring.datasource.testWhileIdle = truespring.datasource.timeBetweenEvictionRunsMillis = 60000spring.datasource.minEvictableIdleTimeMillis = 30000spring.datasource.validationQuery = SELECT 1spring.datasource.max-active = 15spring.datasource.max-idle = 10spring.datasource.max-wait = 8000flyway.url = jdbc:mysql://localhost:3306/mysqlflyway.schemas = USERSERVICEflyway.user = rootflyway.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: 8000flyway:   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, 'it1352.com');

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

package com.it1352.flywayapp; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class FlywayappApplication {   public static void main(String[] args) {      SpringApplication.run(FlywayappApplication.class, args);   }}

完整的构建配置文件如下:

Maven  -  pom.xml

      4.0.0   com.it1352   flywayapp   0.0.1-SNAPSHOT   jar   flywayapp   Demo project for Spring Boot         org.springframework.boot      spring-boot-starter-parent      1.5.9.RELEASE                   UTF-8      UTF-8      1.8                     org.flywaydb         flyway-core                           org.springframework.boot         spring-boot-starter-jdbc                           org.springframework.boot         spring-boot-starter-web                     mysql         mysql-connector-java                                       org.springframework.boot            spring-boot-maven-plugin                     

Gradle  -  build.gradle

buildscript {   ext {      springBootVersion = '1.5.9.RELEASE'   }   repositories {      mavenCentral()   }   dependencies {      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")   }}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'org.springframework.boot'group = 'com.it1352'version = '0.0.1-SNAPSHOT'sourceCompatibility = 1.8repositories {   mavenCentral()}dependencies {   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')   testCompile('org.springframework.boot:spring-boot-starter-test')}

您可以创建一个可执行的JAR文件,并使用下面给出的Maven或Gradle命令运行Spring Boot应用程序;

对于Maven,您可以使用此处显示的命令 :

mvn clean install

在"BUILD SUCCESS"之后,您可以在目标目录下找到JAR文件.

对于Gradle,您可以使用此处显示的命令 :

gradle clean build

之后" "BUILD SUCCESSFUL",你可以在build/libs目录下找到JAR文件.

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

java -jar 

现在,Tomcat在端口8080上启动,在控制台窗口中,您可以看到此处所示的flyway数据库日志.

Flyway数据库日志

您现在可以转到数据库并执行选择查询.

数据库并选择查询