2014-07-26 47 views
0

根據this question,使用Liquibase創建數據庫對象時保留大小寫的正確方法是在「根對象」上設置objectQuotingStrategy,這在使用XML格式時很有意義,但在使用YAML格式時不太清晰。如何使用YAML格式設置Liquibase ObjectQuotingStrategy?

有什麼辦法可以使用YAML格式爲整個更改日誌設置此屬性?

+0

大小寫表和列名導致疼痛在我的經驗痛苦....絕對有把握你需要這個?使用XML更改集可能是阻力最小的路徑。 –

+0

我完全同意區分大小寫,可悲的是數據庫是遺留的;遷移將用於測試dbs進行驗證。至於XML,我寧願不使用它,並強烈地感覺到,如果YAML是受支持的格式,它應該支持所有的功能。 –

回答

2

你應該能夠只是將其設置爲根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分支中的錯誤。

現在,你必須把它放在了變更級別:

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

除了這是無效的YAML這一事實,即使通過糾正該錯誤,它也不起作用。 –

+0

在進一步的研究中,它確實看起來像3.2.2中的一個bug。我更新了答案並修正了YAML。 –

+0

謝謝,我欣賞快速週轉! –