【问题标题】:Liquibase validation failed after modifying the entity修改实体后 Liquibase 验证失败
【发布时间】:2018-09-22 03:14:22
【问题描述】:

我想将一个字段的数据类型从字符串更改为日期。所以我在db中删除了表。然后修改 liquibase 文件并运行应用程序。现在它抱怨以下消息。

liquibase.exception.ValidationFailedException:验证失败:

之后,我恢复了 liquibase 文件更改并运行了应用程序。这次没有错误,但它没有创建表。

请帮我解决这个问题。

【问题讨论】:

    标签: liquibase


    【解决方案1】:

    我认为验证失败是关于校验和的错误。当您修改已执行的变更集并尝试再次执行时,就会发生这种情况。

    Liquibase 将所有已执行的变更集保存在一个名为 databasechangelog 的表中,因此它可以找出在执行期间可以跳过哪些变更集。

    要再次执行变更集,请先从该表中删除相应的,然后再次运行 Liquibase。

    【讨论】:

      【解决方案2】:

      使用 Liquibase 时,您不应该(通常)在 Liquibase 之外修改数据库 - 如果您是开发自己的私有开发数据库的开发人员,则主要例外。如果您处于该状态(在您自己的私有数据库上工作),那么当您在 Liquibase 之外修改数据库(即删除表)时,您还需要删除 DATABASECHANGELOG 表中与表创建语句相对应的行,因此当您重新运行liquibase update 时,它将重新创建表。

      【讨论】:

        猜你喜欢
        • 2017-08-29
        • 2016-12-21
        • 1970-01-01
        • 2021-01-09
        • 1970-01-01
        • 2018-07-26
        • 1970-01-01
        • 2022-01-01
        • 2021-03-10
        相关资源
        最近更新 更多