springboot整合flyway實踐
阿新 • • 發佈:2021-09-08
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/
歡迎任何形式的轉載,未經作者同意,請保留此段宣告!