2014-01-17 4 views
2

Есть ли способ, чтобы написать LiquiBase addColumn так ревизию генерирует SQL, какLiquibase: можете ли вы указать «после столбца» с помощью Liquibase addColumn?

ALTER TABLE xxx ADD COLUMN yyy AFTER zzz; 

Я имею в виду, есть ли способ, чтобы добавить эквивалент «после колонки ZZZ» в LiquiBase жаргона?

+0

http://www.liquibase.org/documentation/modify_sql.html –

ответ

5

С Liquibase 3.1 на ярлыке столбца появляются новые атрибуты «afterColumn», «beforeColumn» и «position».

Документация на http://www.liquibase.org/documentation/column.html была обновлена, чтобы включить их.

+1

Эти атрибуты столбцов пока не работает. Соответствующий отчет об ошибке: https://liquibase.jira.com/browse/CORE-1745 –

+0

Исправлена ​​ошибка https://liquibase.jira.com/browse/CORE-1745. –

7

До this фиксирован, вы можете использовать modifySql.

<changeSet id="1-1" author="david"> 
    <comment>Add column field to example table</comment> 
    <addColumn tableName="example"> 
     <column name="name" type="VARCHAR(50)" defaultValue=""> 
      <constraints nullable="false"/> 
     </column> 
    </addColumn> 

    <!-- Use modifySql so we can insert it in the desired position --> 
    <modifySql> 
     <append value=" AFTER some_column"/> 
    </modifySql> 
</changeSet> 
+1

BTW 'append' терпит неудачу в H2, когда поле имеет уникальное ограничение (потому что в этом случае будут созданы команды' ALTER TABLE'). –