2011-03-24 123 views
6

當我嘗試在postgresql 中創建數據類型爲「TIMESTAMP WITHOUT TIME ZONE」的列時,它始終在數據庫中創建爲「TIMESTAMP WITH TIME ZONE」,那麼是否有針對此問題的解決方法或解決方案?無法在PostgreSQL中創建類型爲「TIMESTAMP WITHOUT TIME ZONE」的列

<addColumn tableName="myTable"> 
      <column name="date_added" type="TIMESTAMP WITHOUT TIME ZONE"> 
      <constraints nullable="false" /> 
      </column> 
</addColumn> 

順便說一句,這個問題是JIRA: http://liquibase.jira.com/browse/CORE-877

+2

請記住,Liquibase正在將XML標記解釋爲PostgreSQL SQL命令。爲了確定執行了什麼SQL,使用updateSQL選項運行Liquibase以查看正在生成的實際SQL是什麼。 – Kuberchaun 2011-03-24 14:10:43

+3

你不能在Liquibase中修復這個bug嗎?這就是真正的問題所在,Liquibase創建了錯誤的SQL。 – 2011-03-24 18:34:21

回答

1

您可以使用SQL <標籤>創建如果liquibase正在生成錯誤的SQL你你想要的確切SQL。

+0

請問該怎麼辦? – 2011-03-25 12:16:48

+1

@ sword101我認爲這是你需要看看http://www.liquibase.org/manual/custom_sql。 – Kuberchaun 2011-03-25 14:57:31

+0

@ StarShip3000是的,我忘了繞過sql標籤的尖括號,所以它沒有顯示。對不起,關於 – 2011-03-25 21:01:10

12

而不是使用標籤和XML完全切換到SQL的,你可以使用它是在整個變更有效的標籤修改結果生成的SQL:

<modifySql dbms="postgresql"> 
    <replace replace="WITH" with="WITHOUT"/> 
</modifySql> 
+0

謝謝!它效果很好。 一個提示:modifySql元素進入changeSet元素內部,並在整個changeSet中工作。但是,僅當我將modifySql元素放在changeSet的末尾時纔有效。 目前的鏈接是http://www.liquibase.org/documentation/modify_sql.html – Humber 2013-09-19 19:49:42

相關問題