朋友
我有一个jhipster项目,我正在使用命令在产品上进行部署
java -jar project.jar
但是在开发过程中,我重命名了某些表中的某些列,当我重新部署代码时,我收到了liquibase错误,并被告知是否可以运行下面的命令来解决该问题。
./mvnw liquibase:changelogsync
我没有prod上的代码,只有jar文件,请告知,我应该怎么做才能解决它?
谢谢
A
答案 0 :(得分:0)
听起来您应该花一些时间来了解jHipster或Liquibase文档,以了解它的作用。您没有提到错误是什么,但是我想它可能类似于“ ID为xxxx的变更集的校验和从yyyy更改为zzzz”。如果您能够在生产环境中运行changelogsync,则只需更新生产环境中的databasechangelog表中的校验和,即可将更改日志中的所有变更集标记为已运行,但是您的数据库表将没有正确的列。
大概您已经在生产环境中运行了东西,并且有一个带有某些列的表-假设它被命名为A。您说您已重命名该列,并假装新名称为B。如果仅通过更改更改日志中的create table语句进行了更改,那么如果在生产环境中运行changelogsync,则发生的情况是liquibase会认为要创建的更改集表和名称为B的列已运行,但实际上尚未运行。
相反,将更改日志还原到以前的状态,而不是通过更改更改集来重命名列,而是创建一个新的更改集,该更改集使用the liquibase renameColumn change type重命名该列。