当我尝试在postgresql中创建一个数据类型为“TIMESTAMP WITHOUT TIME ZONE”的列时 它总是在数据库中创建为“TIMESTAMP WITH 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
答案 0 :(得分:12)
您可以使用在整个变更集中有效的标记修改生成的结果SQL,而不是使用标记并完全从XML切换到SQL:http://www.liquibase.org/documentation/modify_sql.html
例如在你的情况下你会有这个:
<modifySql dbms="postgresql">
<replace replace="WITH" with="WITHOUT"/>
</modifySql>
答案 1 :(得分:1)
您可以使用&lt; sql&gt;如果liquibase为您生成错误的SQL,则使用tag创建您想要的确切SQL。
答案 2 :(得分:1)
阅读本页http://www.liquibase.org/documentation/sql_format.html。如果您将SQL格式与Liquibase一起使用,只需手动输入所需的SQL。
答案 3 :(得分:0)
除了@magomarcelo之外,您还可以将modifysql编写为YAML。 以下示例将忽略postgresql中的unsigned:
- modifySql:
dbms: postgresql
replace:
replace: unsigned
with: default 0
答案 4 :(得分:0)
此查询经过很长时间后,liquibase团队已解决了此问题,现在您可以添加以下列类型:
<column name="created_at" type="TIMESTAMP WITHOUT TIME ZONE">
<constraints nullable="true"/>
</column>