2013-07-16 3 views
2

Я использую Liquibase для генерации SQL-файлов на основе набора изменений. Но когда я использую Liquibase: updateSQL, он не проверяет предварительные условия перед созданием файла SQLLiquibase: Migrate.sql не проверяет precondtions

У меня есть предварительные условия, чтобы проверить, существует ли таблица, перед созданием таблицы.

В этом сценарии, несмотря на то, что таблицы присутствуют, оператор create table SQL все еще создается.

Где и когда я запускаю Liquibase: обновить цель, это предварительное условие проверено правильно.

Так ли проверка ликбезы на предварительное условие при создании файла sql?

Спасибо.

+0

Я предлагаю собрать билет против проекта Liquibase. Я предполагаю, что предварительные условия трудно отобразить как чистый SQL. Например, таблица может существовать в вашем экземпляре базы данных, но может отсутствовать на другом ... При выполнении миграции через Liquibase он может проверить это условие с помощью java. Предположительно, SQL-решение должно генерировать PL/SQL для Oracle, но не будет работать вообще в базе данных, которая не поддерживает хранимые процедуры. Интересная проблема. –

ответ

2

Вы, вероятно, нашли ответ уже, но только в том случае, если это может помочь:

http://forum.liquibase.org/topic/unexpected-behaviour-of-preconditions-with-updatesql

onSqlOutput = «TEST» атрибут для предварительных условий звучит как то, что вы ищете.

Просто будьте осторожны с предусловиями, которые вы пишете или когда их тестируете при создании updateSQL. Предпосылки, основанные на ранее применявшихся исправлениях, которые еще не были выполнены в вашем экземпляре, могут привести к ошибкам.

Надеюсь, это поможет

0

Может помочь предоставить некоторый код. Особенно ваше предположение, чтобы позволить другим оценить, является ли это проблемой.

Смежные вопросы