【问题标题】:Liquibase - apply changeSet to DB2 for iSeries: case sensitive?Liquibase - 将 changeSet 应用于 DB2 for iSeries:区分大小写?
【发布时间】:2015-02-13 16:47:22
【问题描述】:

我在使用 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 中的表名转换为大写,则不会发生错误,并且数据库已正确更新。

【问题讨论】:

    标签: db2 liquibase


    【解决方案1】:

    这很有趣。我本来想说,“它对我来说没问题”,但后来我意识到我生成的变更集中的所有表名都已经是大写的了。它们也被引用:<createTable tableName="AUDITS">。它们当然必须是 XML 属性。

    不过,我猜想引号会传递给生成的 SQL,这会导致您看到的效果。不过,运行liquibase ... updateSQL 并查看一下可能是值得的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      相关资源
      最近更新 更多