Liquibase: Migrate.sql не проверяет предварительные требования

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

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

В этом сценарии, даже если таблицы присутствуют, «SQL-оператор create table все еще генерируется».

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

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

Спасибо.


person Sam    schedule 16.07.2013    source источник
comment
Я предлагаю поднять билет против проекта Liquibase. Я предполагаю, что предварительные условия сложно отобразить как чистый SQL. Например, таблица может существовать в вашем экземпляре базы данных, но может отсутствовать в другом ... При запуске миграции через Liquibase это условие можно проверить с помощью java. Решение на основе SQL, вероятно, должно было бы генерировать PL / SQL в Oracle, но не будет работать вообще в базе данных, которая не поддерживает хранимые процедуры. Интересная проблема.   -  person Mark O'Connor    schedule 17.07.2013


Ответы (2)


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

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

onSqlOutput = "TEST" для предварительного условия звучит как то, что вы ищете.

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

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

person rodrigogp    schedule 06.11.2013

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

person Joshua Lockhart    schedule 31.07.2013