Могу ли я получить имя схемы в файле журнала изменений при добавлении нового набора изменений (SQL-запрос)? - PullRequest
0 голосов
/ 21 сентября 2018

Когда я добавляю

defaultSchemaName:myDB

в свой файл свойств, я могу получить имя схемы следующим образом:

UPDATE MYDB.DATABASECHANGELOGLOCK....
INSERT INTO MYDB.DATABASECHANGELOG....
UPDATE MYDB.DATABASECHANGELOGLOCK...

Но если я добавлю новый набор изменений в свой файл sql следующим образом

--changeset
SELECT * FROM MYTABLE;

Я не могу получить имя схемы.Мой результат:

UPDATE MYDB.DATABASECHANGELOGLOCK....
SELECT * FROM MYTABLE;
INSERT INTO MYDB.DATABASECHANGELOG....
UPDATE MYDB.DATABASECHANGELOGLOCK...

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

SELECT * FROM MYDB.MYTABLE

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы можете попробовать изменить свои sql-файлы (если вы используете sqlfiles) и использовать заполнители.Так, например, у вас будет набор изменений, подобный следующему:

--changeset
SELECT * FROM ${mySchema}MYTABLE;

Полагаю, что для этого лучше всего определить свойство в главном журнале изменений следующим образом (вы можете определить его пустым или предварительно определенным в вашей схеме):

<property name="mySchema" value="" />

и затем во время выполнения передайте его как параметр из командной строки (-Dparameter.mySchema=MYDB. примечание: здесь я не уверен, должен ли он иметь префикс parameter, в liquibase.properties это должно быть) или поставитьэто в liquibase.properties.

0 голосов
/ 21 сентября 2018

Файл свойств обрабатывается liquibase для собственного набора изменений.Когда вы пишете оператор SQL, liquibase выполняет их непосредственно в базе данных.

Вы можете справиться с этим, определив базу данных по умолчанию в вашей среде.

...