在 Spring Boot 中恢复 Flyway 失败的迁移
1、概览 Flyway 迁移并不总是一帆风顺行,本文将带你了解迁移失败后的恢复方案。
2、设置 从基本的 Spring Boot 配置 Flyway 开始。它依赖 flyway-core、spring-boot-starter-jdbc 和 flyway-maven-plugin。
对于如何在 Spring Boot 中使用 Flyway 进行数据库迁移,你可以参阅 这篇文章。
2.1、配置 首先,添加两个不同的 Profile(配置文件)。这能够轻松地针对不同的数据库引擎运行迁移:
<profile> <id>h2</id> <activation> <activeByDefault>true</activeByDefault> </activation> <dependencies> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> </dependencies> </profile> <profile> <id>postgre</id> <dependencies> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> </dependencies> </profile> 还要为每个 Profile 添加 Flyway 数据库配置文件。
首先,创建 application-h2.properties:
flyway.url=jdbc:h2:file:./testdb;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE;MODE=MySQL;DATABASE_TO_UPPER=false; flyway.user=testuser flyway.password=password 然后,创建 PostgreSQL application-postgre.properties:
flyway.url=jdbc:postgresql://127.0.0.1:5431/testdb flyway.user=testuser flyway.password=password 注:你可以调整 PostgreSQL 配置,使其与你的数据库相匹配,也可以使用 代码示例中的 docker-compose 文件。
2.2、迁移 添加第一个迁移(migration)文件 V1_0__add_table.sql:
create table table_one ( id numeric primary key ); 添加第二个包含错误的迁移文件 V1_1__add_table.