Liquibase - 将changeSet应用于DB2 for iSeries:区分大小写?

时间:2014-12-15 14:45:45

标签: db2 liquibase

我对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 个答案:

答案 0 :(得分:0)

这很有意思。我打算说,&#34;它适用于我,&#34;但后来我意识到我生成的变更集中的所有表名都已经是大写的。他们还引用了<createTable tableName="AUDITS">。当然,它们必须是XML属性。

但我猜测,引号会传递给生成的SQL,这会导致您看到的效果。可能值得运行liquibase ... updateSQL,但看看。

将liquibase-db2i扩展名更改为包含Java toUpperCase调用应该很容易。不过,我不确定是否值得给您带来麻烦,当您可以将名称指定为大写时。