我试图将一个字段作为CLOB添加到我的实体中。当使用JHipster命令行界面时,添加它没有问题。
现在,当我尝试启动我的应用程序时,我从liquibase得到以下验证错误:
liquibase.exception.ValidationFailedException: Validation Failed:
1 change sets check sum
config/liquibase/changelog/20170221193921_xxxxxxxx.xml::20170221193921-1::jhipster was: 7:d8b3f42d8d4d523c7b14f93b4c7657c7 but is now: 7:a2a365179a0d231c2771ebd79f51b1fc
我还尝试了以下几种方法:
./mvnw liquibase:clearCheckSums
结果就是BUILD SUCCESS
。
我也尝试过。/mvnw liquibase:update和updateSQL,同样的结果。
谁能告诉我我对JHipster的问题在哪里?
发布于 2018-12-10 04:09:35
当我们使用命令jhpster entity xxxx
在Jhipster中添加一列时,它并不是作为单独的变更集添加的,而是将该列添加到create table的现有变更集中,并且当文件中有更改时,将生成新的校验和,并且在启动时它与DB不同,因此验证失败
<changeSet id="20181209164925-1" author="jhipster" >
<createTable tableName="xxxxxx">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="xxxxx" type="integer">
<constraints nullable="true" />
</column>
<column name="xxxxx" type="integer">
<constraints nullable="true" />
</column>
<column name="xxxxxx" type="varchar(140)">
<constraints nullable="true" />
</column>
<column name="xxxx" type="bigint">
<constraints nullable="true" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
要解决此问题,请使用下面的add column as tag ..shown添加新的变更集
<changeSet id="20181209164925-2" author="jhipster" runOnChange="true">
<addColumn tableName="xxxxxx">
<column name="xxxxxx" type="date"></column>
</addColumn>
参考https://www.liquibase.org/documentation/changes/add_column.html
发布于 2020-04-21 00:28:50
快速的解决方案是运行:
./mvnw clean
./mvnw liquibase:clearCheckSums
这是可行的,但是您忽略了使用Liquibase跟踪更改的要点。出于开发目的,这是可以的。
解决这个问题的正确方法是运行./mvnw liquibaseDiffChangeLog
来创建对数据库所做更改的差异更改日志。然后可以将其作为新条目添加到master.xml文件中,该条目可以在下次启动应用程序时应用。
https://stackoverflow.com/questions/43207163
复制相似问题