【问题标题】:Maven flyway Found non-empty schema(s) "PUBLIC" but no schema history tableMaven flyway 找到非空模式“PUBLIC”但没有模式历史表
【发布时间】:2022-04-05 00:59:33
【问题描述】:

我刚刚使用 Maven 学习 Spring Boot,但遇到了无法解决的错误。 我附加了 Flyway 的依赖项,当我想安装它时(我在 Lifecycle 上单击安装),我收到此错误:

找到非空架构“PUBLIC”,但没有架构历史记录表。 使用 baseline() 或将 baselineOnMigrate 设置为 true 来初始化架构历史表。

什么可能导致这个问题以及如何解决它?

我正在使用 Java 8,我对 Flyway 的依赖如下所示:

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

【问题讨论】:

    标签: java spring-boot maven flyway


    【解决方案1】:

    Spring Boot 正在尝试将 Flyway 迁移作为其配置的 maven 目标的一部分。

    找到非空架构“PUBLIC”但没有架构历史表。

    错误消息指出 Flyway 尝试运行的默认架构 PUBLIC 不为空。因此,Flyway 知道需要知道数据库的状态,然后才能创建模式历史表并进行迁移。

    使用baseline() 或将baselineOnMigrate 设置为true 来初始化架构历史表。

    通过创建基线来构建迁移,您可以通过以下两种方法来纠正此问题。 https://flywaydb.org/documentation/command/baseline

    在 Spring Boot 中,迁移时的基线可以配置为 spring.flyway.baselineOnMigrate=true

    此外,Maven 中的install 并不意味着安装依赖项,而是构建产品的构建工件并将其放入您的.m2 maven 存储库中。

    【讨论】:

    • 感谢主题的回复和澄清。我按照说明进行操作,程序运行正常。
    猜你喜欢
    • 2022-01-24
    • 2019-04-09
    • 2014-10-23
    • 2017-09-04
    • 2019-06-29
    • 2022-08-22
    • 1970-01-01
    • 2015-10-17
    • 2020-06-26
    相关资源
    最近更新 更多