Liquibase更新无法识别已执行的更改集

时间:2015-06-16 06:51:42

标签: oracle oracle11g liquibase

我正在尝试在命令行中对oracle数据库运行liquibase更新,它无法识别已执行的更改集,并且它尝试从更改日志文件的开头开始更新

java -jar liquibase.jar --driver=oracle.jdbc.driver.OracleDriver --classpath=ojdbc14-11.2.0.3.0.jar --changeLogFile=ParentDBChangeLog.xml  --url="jdbc:oracle:thin:@172.25.XX.XXX:1521:ora11g" --username=xxxx --password=xxxxx update

从尝试执行的第一个更改集中获取失败,我得到的错误是

错误:java.sql.SQLSyntaxErrorException:ORA-00955:名称已被现有对象使用

我如何解决此问题

1 个答案:

答案 0 :(得分:0)

您应该检查数据库是否仍然包含DATABASECHANGELOGDATABASECHANGELOGLOCK表并且它们已正确填充(DATABASECHANGELOG应该为每个变更集提供一行数据应用于数据库,IDAUTHORFILENAME列应与changelog.xml中的值匹配)。

我见过很多善意的DBA看到这些表,没有认识到它们是什么,并删除它们。我也看到有人开始介绍Liquibase的情况,但不是每个人都知道这一点,并继续使用alrady用于管理模式更改的任何进程,并且该进程删除或更改这些表。