flyway 后的 Flyway 迁移错误:基线

Posted

技术标签:

【中文标题】flyway 后的 Flyway 迁移错误:基线【英文标题】:Flyway migration error after flyway:baseline 【发布时间】:2021-02-07 23:00:22 【问题描述】:

我在我的宠物项目中使用了 Java+Spring+Maven+Flyway+Postgres。 这里 db/migration 中有两个 sql 文件。 当我第一次运行应用程序时

mvn spring-boot:run

或在应用程序开始使用之前

mvn flyway:migrate -Dflyway.url=jdbc:postgresql://localhost:5432/university -Dflyway.user=tester -Dflyway.password=test

Db 是正确创建的,没有任何错误,但是当我想首先创建 V1 时

 mvn flyway:baseline -Dflyway.url=jdbc:postgresql://localhost:5432/university -Dflyway.user=tester -Dflyway.password=test

然后:

mvn flyway:migrate -Dflyway.url=jdbc:postgresql://localhost:5432/university -Dflyway.user=tester -Dflyway.password=test

我发现错误:

[ERROR] Failed to execute goal org.flywaydb:flyway-maven-plugin:6.4.4:migrate (default-cli) on project universityschedule: org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException: 
[ERROR] Migration V2__add_email_and_phone_to_person.sql failed
[ERROR] ------------------------------------------------------
[ERROR] SQL State  : 42P01
[ERROR] Error Code : 0
[ERROR] Message    : ERROR: relation "public.teacher" does not exist

为什么会这样?如何解决?

【问题讨论】:

【参考方案1】:

Flyway 基线将用于非空数据库。在这种情况下,假设第一次迁移代表将数据库创建到其当前状态所需的 sql。因此,它假设您的V1 迁移不打算执行,只是将其标记为baseline

如果您只是迁移,跳过基线步骤,它应该可以正常工作。

【讨论】:

以上是关于flyway 后的 Flyway 迁移错误:基线的主要内容,如果未能解决你的问题,请参考以下文章

创建 jpa 表后的 Flyway 迁移

使用 Oracle 12c 进行 Flyway 迁移

未找到 Flyway 迁移路径

SpringBoot配置文件属性值

Flyway 模式仅仅是提供信息还是影响功能?

Flyway 基线功能有啥用? [关闭]