在生产服务器上部署JHipster项目后,我使用以前的.jhipster / * .json文件重新生成项目。 因此,liquibase changelog文件也已被重写。我通过添加字段更改了新生成的项目上的单个实体。我希望使用以前的生产系统数据库。
为了测试这个,我拉了一个生产数据库的转储并将其导入我当地的Postgres安装。在IntelliJ中,我选择生产配置文件(配置为使用PSQL而不是H2)。
使用生产配置文件构建应用程序时,我当然会遇到liquibase.exception.ValidationFailedException,因为校验和已关闭。
因此,我想使用liquibase:clearCheckSums目标重新生成校验和。但是,目标仅在H2上执行。
[INFO] driver: org.h2.Driver
[INFO] url: jdbc:h2:file:./target/h2db/db/test
[INFO] username: test
[INFO] password: ****
[INFO] use empty password: false
[INFO] properties file: null
[INFO] properties file will override? false
[INFO] prompt on non-local database? true
[INFO] clear checksums? false
虽然我需要在生产数据库(Postgres)上重置校验和。
我需要做什么才能在Postgres上执行?
答案 0 :(得分:1)
您可以在项目的 pom.xml 文件中编辑 liquibase-maven-plugin :
<configuration>
<changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
<driver>[your postgres driver]</driver>
<url>[url to your db]</url>
<username>[your username]</username>
<password>[your password]</password>
</configuration>
之后你可以从命令行运行mvn libquibase插件,如下所示: mvn liquibase:clearCheckSums 现在liquibase应该对你的数据库起作用。 欢呼,duderoot