1. 程式人生 > 其它 >springboot整合flyway實踐

springboot整合flyway實踐

1、建立springboot工程,使用的版本為2.4

工程結構如下:

2、增加依賴

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

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

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

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

 

3、application.yml  配置

建立空的資料庫flyway

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
    username: root
    password: 123456
    driver: com.mysql.cj.jdbc.Driver
  #flyway配置
  flyway:
    baseline-on-migrate: true
    #資料庫連線配置
    url: jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
    user: root
    password: 123456
    #忽略指令碼順序
    out-of-order: true

  

4、在resources資料夾下建立db/migration 資料夾

SQL檔案的命名需要遵從一定的規範,否則執行的時候會報錯。

1、僅需要執行一次的SQL: V開頭,後面跟上數字,數字之間可以是"."或者“_"分開。然後再以兩個下劃線分割。

2、可重複執行的SQL,以”R“開頭,後面再跟兩個下劃線。

V1.1__create_user_ddl.sql

CREATE TABLE IF NOT EXISTS `USER`(
    `USER_ID`          INT(11)           NOT NULL AUTO_INCREMENT,
    `USER_NAME`        VARCHAR(100)      NOT NULL COMMENT '使用者姓名',
    `AGE`              INT(3)            NOT NULL COMMENT '年齡',
    `CREATED_TIME`     datetime          NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `CREATED_BY`       varchar(100)      NOT NULL DEFAULT 'UNKNOWN',
    `UPDATED_TIME`     datetime          NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `UPDATED_BY`       varchar(100)      NOT NULL DEFAULT 'UNKNOWN',
    PRIMARY KEY (`USER_ID`)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;

  

V1.2__add_user_dml.sql

insert into `user`(user_name,age) values('lisi',33);

  

R__add_unknown_user.sql.sql

insert into `user`(user_name,age) values('unknown',33);

  

5、啟動程式

檢視資料庫,建立了兩張條,分別為flyway_schema_history和user

flyway_schema_history表

user表

參考:https://www.jianshu.com/p/567a8a161641

作者:Work Hard Work Smart
出處:http://www.cnblogs.com/linlf03/
歡迎任何形式的轉載,未經作者同意,請保留此段宣告!