【问题标题】:How do I set the Liquibase ObjectQuotingStrategy using the YAML format?如何使用 YAML 格式设置 Liquibase ObjectQuotingStrategy?
【发布时间】:2014-07-29 01:59:09
【问题描述】:

根据this question,使用Liquibase创建数据库对象时保留大小写的正确方法是在“根对象”上设置objectQuotingStrategy,这在使用XML格式时有意义,但在使用YAML格式时不太清楚.

有没有办法使用 YAML 格式为整个更改日志设置此属性?

【问题讨论】:

  • 区分大小写的表和列名在我的经验中会导致痛苦和痛苦.... 绝对确定您需要这个?使用 XML 变更集可能是阻力最小的路径。
  • 我完全同意区分大小写,遗憾的是数据库是遗留的;迁移将用于测试数据库进行验证。至于 XML,我宁愿不使用它,并且强烈认为如果 YAML 是受支持的格式,它应该支持 所有 的功能。

标签: yaml liquibase


【解决方案1】:

您应该可以将其设置为根 databaseChangeLog 节点的属性:

databaseChangeLog:
    - objectQuotingStrategy: QUOTE_ALL_OBJECTS
    - changeSet:
        id: 1
        author: nvoxland
        changes:

但是,3.2.x 中似乎存在一个错误,导致无法在 databaseChangeLog 级别对其进行解析。我创建了https://liquibase.jira.com/browse/CORE-1989 并修复了 3.2.x 分支中的错误。

现在,您必须在 changeSet 级别设置它:

databaseChangeLog:
    - changeSet:
        id: 1
        author: nvoxland
        objectQuotingStrategy: QUOTE_ALL_OBJECTS
        changes:
            - createTable:
              .....

【讨论】:

  • 除了这不是有效的 YAML 之外,即使纠正了该错误,它也不起作用。
  • 在进一步的研究中,它看起来确实像 3.2.2 中的一个错误。我更新了答案并修复了 YAML。
  • 谢谢,感谢您的快速周转!
猜你喜欢
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 2022-06-22
相关资源
最近更新 更多