我对Liquibase 3.3有以下问题 . 我使用liquibase-db2i扩展来更新DB2 for iSeries数据库 . 我的架构中的所有现有表名都是大写的 . 我生成的changeSet中的表名是小写的 . 如果我使用我的更改日志执行“liquibase update”,我会收到以下错误:
Change Set changelog.xml::1::user (generated) failed.
Error: java.sql.SQLException: [SQL0204] test_table in TESTSCHEMA type *FILE not found.
如果我手动将changeSet中的表名转换为大写,则不会发生错误并且数据库已正确更新 .
1 回答
那个's interesting. I was going to say, 1455898 but then I realised that all the table names in my generated changeset are already in upper case. They'也引用了:
<createTable tableName="AUDITS">
. 当然,它们必须是XML属性 .但我猜,引号会被传递给生成的SQL,这会导致你看到的效果 . 可能值得运行
liquibase ... updateSQL
,看看吧 .将liquibase-db2i扩展名更改为包含Java
toUpperCase
调用应该很容易 . 但是,我不确定是否值得这么麻烦,当你可以将名称指定为大写时 .