Не удается создать столбец с типом «TIMESTAMP БЕЗ ВРЕМЕННОЙ ЗОНЫ» в PostgreSQL - PullRequest
6 голосов
/ 24 марта 2011

когда я пытался создать столбец с типом данных "TIMESTAMP WITHOUT ZONE" в postgresql он всегда создается в базе данных как «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 ]

12 голосов
/ 15 мая 2011

Вместо использования тега и полного перехода с XML на sql, вы можете изменить полученный сгенерированный SQL, используя тег, действительный для всего набора изменений: http://www.liquibase.org/documentation/modify_sql.html

Например, в вашем случае вы быесть это:

<modifySql dbms="postgresql">
    <replace replace="WITH" with="WITHOUT"/>
</modifySql>
1 голос
/ 25 марта 2011

Прочтите эту страницу http://www.liquibase.org/documentation/sql_format.html., просто вручную введите необходимый SQL в точности так, как вы хотите, если вы используете формат SQL с Liquibase.

1 голос
/ 25 марта 2011

Вы можете использовать тег для создания точного SQL, который вам нужен, если liquibase генерирует неправильный SQL для вас.

0 голосов
/ 06 февраля 2019

В дополнение к @magomarcelo вы также можете написать modifysql как YAML.В следующем примере игнорируется unsigned в postgresql:

- modifySql:
    dbms: postgresql
    replace:
      replace: unsigned
      with: default 0
...