PostgreSQL中无法创建类型列“TIMESTAMP不受时间ZONE”

问题描述 投票:6回答:4

当我试图创建它总是在数据库中作为“WITH TIME ZONE TIMESTAMP”创建PostgreSQL中的数据类型“TIMESTAMP无时间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

postgresql liquibase
4个回答
1
投票

阅读此页http://www.liquibase.org/documentation/sql_format.html。只是在SQL需要手动键入你到底怎么想的那样,如果您使用的Liquibase SQL格式。


12
投票

而不是使用标签和XML完全切换到SQL的,你可以使用它是在整个变更有效的标签修改结果生成的SQL:http://www.liquibase.org/documentation/modify_sql.html

例如,在你的情况,你会拥有这样的:

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

1
投票

你可以使用<SQL>标签来创建,如果liquibase正在生成错误的SQL你你想要的确切SQL。


0
投票

除了@magomarcelo你也可以写modifysql为YAML。下面的示例中的PostgreSQL忽略无符号:

- modifySql:
    dbms: postgresql
    replace:
      replace: unsigned
      with: default 0
© www.soinside.com 2019 - 2024. All rights reserved.