2015-11-20 3 views
2

В настоящее время я использую Liquibase в небольшом проекте, который работает очень хорошо. Но сейчас я столкнулся с проблемой. Мой журнал изменений работает, как и ожидалось, в моем testenv, но не работает на моем продукте. Это происходит потому, что мои prod-таблицы содержат несколько строк данных.Перемещение данных между таблицами

Я знаю, что в Liquibase есть команда UPDATE, но я не уверен, как правильно ее использовать.

Что я хочу архивировать, так это перемещение столбца из таблицы B в таблицу A без потери его данных. Таблица B содержит внешний ключ таблицы A. Нормальный SQL-Statement будет выглядеть как-то вроде update A set A.x = (select B.x from B where B.id = A.id)

Было бы неплохо, если бы кто-нибудь мог дать мне пример такого обновления-набора изменений.

Thx!

+2

Проще всего сделать, это использовать [ '' ] (http://www.liquibase.org/documentation/changes/sql.html) тег и написать оператор 'update' в этот тег. Я нахожу [''] (http://www.liquibase.org/documentation/changes/update.html) _tag_ довольно громоздким в использовании. –

+0

Спасибо! Это прекрасно работает. Мне все еще интересно посмотреть, как это будет работать с тегом '' – Cerbis

ответ

2

Это может выглядеть как

<changeSet ...> 
    <update tableName="TABLE_A"> 
      <column name="x" valueComputed="(select b.x from TABLE_B b where b.id=id)"/> 
    </update> 
</changeset> 
Смежные вопросы