修改实体后,Liquibase验证失败

时间:2018-09-21 17:32:59

标签: liquibase

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

liquibase.exception.ValidationFailedException:验证失败:

因此,在那之后,我还原了liquibase文件的更改并运行了该应用程序。这次没有错误,但是没有创建表。

请帮助我如何解决此问题。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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