【问题标题】:Flyway and H2: why are the schema_version table and columns lower-case and case-sensitive?Flyway 和 H2:为什么 schema_version 表和列是小写和区分大小写的?
【发布时间】:2012-11-30 18:59:13
【问题描述】:

【问题讨论】:

    标签: h2 flyway


    【解决方案1】:

    由于创建脚本中的引号,schema_version 表名区分大小写。这允许标识符中不支持的字符。您可以根据需要将 flyway.table 配置为大写值。

    表中的列是 Flyway 内部的,并不意味着作为公共 API。它们是私有的,因此可以从一个 Flyway 版本更改为下一个版本。 Flyway 将始终确保这些更改是自动进行的,无需您手动操作。

    【讨论】:

    • 啊,我什至不知道 sql 脚本中的引号会产生这样的效果。数据库每天都会给我带来惊喜。无论如何,我很高兴这个谜团被解开了。我主要被不一致所困扰,因为我不明白这是怎么可能的。顺便说一句,在问这个问题之前,我实际上确实尝试过 flyway.setTable("SCHEMA_VERSION")...
    • 在配置新设置时,这可能会令人非常沮丧。禁用引用的可选属性将是最受欢迎的!
    • @corsiKa,我完全同意。
    【解决方案2】:

    您将表名括在“双引号”中,以确保创建的实际表不会受到 toUpperCase 转换的影响 - 在某些 dbs 中配置支持的功能。

    将“表”括在引号中可确保创建的表完全符合要求。

    【讨论】:

      猜你喜欢
      • 2018-09-14
      • 2013-03-06
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      相关资源
      最近更新 更多