Liquibase generateChangeLog正在失败-表已经存在



当我运行我的Jhipster项目时,我从Liquibase得到一个"表已经存在"的错误:

[ERROR] liquibase - classpath:config/liquibase/master.xml: classpath:config/liquibase/changelog/db-changelog-001.xml::1::jhipster: Change Set classpath:config/liquibase/changelog/db-changelog-001.xml::1::jhipster failed.  Error: Error executing SQL CREATE TABLE fc.T_USER (login VARCHAR(50) NOT NULL, .....: Table 't_user' already exists

我已经使用

将Liquibase changelog文件生成到config Liquibase changelog目录下
liquibase --driver=com.mysql.jdbc.Driver ^
      --classpath=C:UsersGreg.IntelliJIdea13configjdbc-driversmysql-connector-java-5.1.31-bin.jar ^
      --changeLogFile=db-changelog-001.xml ^
      --url="jdbc:mysql://localhost/fc" ^
      --username=root ^
      generateChangeLog

所以当变更日志设置现有数据库的基线时,我认为有什么东西在欺骗Liquibase试图重新创建数据库。

  • Jhipster版本:当你使用Jhipster -v时,它显示的是1.2。当我nmp更新jhipster时,它说我是最新的= 17.2
  • Liquibase版本尝试了3.0、3.1和3.2
  • Mysql数据库
  • 在Mysql中创建2个表- databasechangelog和databasechangeloglock
  • databasechangelog保持空,databasechangeloglock有一个记录添加当Jhipster应用程序运行

这个过程是有效的,但没有移动到新的计算机。当它工作时,我看到databasechangelog中有几条记录,以及databasechangeloglock中的1条

关于如何调试的提示,欢迎作为答案。谢谢。

按上述方法运行generateChangeLog,然后原位运行changeLogSync,结果databasechangelog表中字段[FILENAME]的值为db-changelog-001.xml

它需要的是运行liquidbase的完整地址。当在一个Jhipster应用程序,我看到classpath:config/liquibase/changelog/db-changelog-001.xml。因此,它似乎不使用仅ID作为行标识符,正如我所期望的。

相关内容

  • 没有找到相关文章

最新更新