6

当我尝试在 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

4

5 回答 5

12

您可以使用在整个变更集中有效的标签来修改生成的 SQL,而不是使用标签并完全从 XML 切换到 sql:http ://www.liquibase.org/documentation/modify_sql.html

例如,在您的情况下,您将拥有以下内容:

<modifySql dbms="postgresql">
    <replace replace="WITH" with="WITHOUT"/>
</modifySql>
于 2011-05-15T19:01:21.527 回答
2

阅读此页面http://www.liquibase.org/documentation/sql_format.html。如果您使用 Liquibase 的 SQL 格式,只需手动输入所需的 SQL。

于 2011-03-25T14:58:21.177 回答
1

如果 liquibase 为您生成错误的 SQL,您可以使用 <sql> 标记来创建您想要的确切 SQL。

于 2011-03-24T21:50:20.833 回答
0

除了@magomarcelo,您还可以将modifysql编写为 YAML。以下示例忽略 postgresql 中的无符号:

- modifySql:
    dbms: postgresql
    replace:
      replace: unsigned
      with: default 0
于 2019-02-05T23:45:30.240 回答
0

在查询了很久之后,liquibase 团队已经纠正了这个问题,现在您可以添加以下列类型:

<column name="created_at" type="TIMESTAMP WITHOUT TIME ZONE">
    <constraints nullable="true"/>
</column>
于 2020-11-11T10:20:31.630 回答