2014-10-22 6 views
0

Когда я выполняю команду sqloutput, Liquibase 3.2.2 предшествует каждой вставке таблицы базы данных с текущим именем схемы.команда updateSQL предшествует таблице databasechangelog с текущим именем схемы

INSERT INTO <MY_TEST_SCHEMA>.DATABASECHANGELOG (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, LIQUIBASE) VALUES (...); 

Это заставляет меня обрабатывать файлы результатов, чтобы удалить «MY_TEST_SCHEMA». string, потому что мы запускаем Liquibase против тестовой схемы, прежде чем запускать полученные файлы в производство.

Я использую Liquibase 2.0.3 довольно долго, и это поведение является новым в Liquibase 3.0.0.

Есть ли способ предотвратить добавление имени схемы? Я уже пытался использовать параметр defaultSchemaName, но он не работал.

ответ

1

Вы должны иметь возможность использовать флаги --outputDefaultSchema = false и --outputDefaultCatalog = false, чтобы включить их.

Похоже, что флаг не соблюдается, по крайней мере, из командной строки в 3.2.2. Я создал https://liquibase.jira.com/browse/CORE-2088 и добавил исправление для 3.3.0, которое должно быть на следующей неделе или около того.

+0

Флаги работали для меня с либерзазой 3.2.2. Это командная строка java -cp ".; C: \ \ Liquibase-3.2.2 \ liquidibase.jar; \ Liquibase-3.2.2 \ lib \ ojdbc14.jar; C: \ \ Liquibase-3.2.2 \ lib \ snakeyaml-1.13.jar "liquidibase.integration.commandline.Main --outputDefaultSchema = false --outputDefaultCatalog = false --logLevel strict --defaultsFile myprops.properties --contexts dml updateSQL Спасибо – kothvandir

+0

Собственно, флаги работать отлично на окнах, но не на Unix, та же самая командная строка приводит к префиксным предложениям базы данных. Имеет ли это смысл? Проблема получения параметров? возможно, в верхнем регистре? – kothvandir

+0

Возможно, существует разница в том, есть ли у вас их в файле liquidibase.properties или непосредственно в аргументах командной строки. Есть ли разница для вас? –

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