diff --git a/lab-20/lab-20-database-version-control-flyway/pom.xml b/lab-20/lab-20-database-version-control-flyway/pom.xml
new file mode 100644
index 00000000..faaa9fa3
--- /dev/null
+++ b/lab-20/lab-20-database-version-control-flyway/pom.xml
@@ -0,0 +1,34 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.1.3.RELEASE
+
+
+ 4.0.0
+
+ lab-20-database-version-control-flyway
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+ mysql
+ mysql-connector-java
+ 5.1.48
+
+
+
+ org.flywaydb
+ flyway-core
+ 5.2.4
+
+
+
+
diff --git a/lab-20/lab-20-database-version-control-flyway/src/main/java/cn/iocoder/springboot/lab20/databaseversioncontrol/Application.java b/lab-20/lab-20-database-version-control-flyway/src/main/java/cn/iocoder/springboot/lab20/databaseversioncontrol/Application.java
new file mode 100644
index 00000000..ebb6f948
--- /dev/null
+++ b/lab-20/lab-20-database-version-control-flyway/src/main/java/cn/iocoder/springboot/lab20/databaseversioncontrol/Application.java
@@ -0,0 +1,14 @@
+package cn.iocoder.springboot.lab20.databaseversioncontrol;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+
+ public static void main(String[] args) {
+ // 启动 Spring Boot 应用
+ SpringApplication.run(Application.class, args);
+ }
+
+}
diff --git a/lab-20/lab-20-database-version-control-flyway/src/main/resources/application.yaml b/lab-20/lab-20-database-version-control-flyway/src/main/resources/application.yaml
new file mode 100644
index 00000000..c4041265
--- /dev/null
+++ b/lab-20/lab-20-database-version-control-flyway/src/main/resources/application.yaml
@@ -0,0 +1,15 @@
+spring:
+ # datasource 数据源配置内容,对应 DataSourceProperties 配置属性类
+ datasource:
+ url: jdbc:mysql://127.0.0.1:3306/lab-19-flyway?useSSL=false&useUnicode=true&characterEncoding=UTF-8
+ driver-class-name: com.mysql.jdbc.Driver
+ username: root # 数据库账号
+ password: # 数据库密码
+
+ flyway:
+ enabled: true
+ baseline-on-migrate: true
+ locations: classpath:db/migration
+ url: jdbc:mysql://127.0.0.1:3306/lab-19-flyway?useSSL=false&useUnicode=true&characterEncoding=UTF-8
+ username: root
+ password:
diff --git a/lab-20/lab-20-database-version-control-flyway/src/main/resources/db/migration/V1.0__INIT_DB.sql b/lab-20/lab-20-database-version-control-flyway/src/main/resources/db/migration/V1.0__INIT_DB.sql
new file mode 100644
index 00000000..02a9b8eb
--- /dev/null
+++ b/lab-20/lab-20-database-version-control-flyway/src/main/resources/db/migration/V1.0__INIT_DB.sql
@@ -0,0 +1,8 @@
+CREATE TABLE `users` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号',
+ `username` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账号',
+ `password` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '密码',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `idx_username` (`username`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
diff --git a/lab-20/pom.xml b/lab-20/pom.xml
new file mode 100644
index 00000000..8403ca71
--- /dev/null
+++ b/lab-20/pom.xml
@@ -0,0 +1,20 @@
+
+
+
+ labs-parent
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-20
+ pom
+
+ lab-20-database-version-control
+ lab-20-database-version-control-flyway
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 25cc7df4..d415654f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,7 @@
lab-17
lab-18
lab-19
+ lab-20