Могу ли я подавить создание таблицы DatabaseChangeLogLock? - PullRequest
1 голос
/ 03 марта 2020

У меня есть схема (для пользователей приложения), где выполняется только один скрипт (создание синонимов). У меня нет привилегий INSERT / UPDATE / CREATE для этой схемы. Могу ли я подавить создание таблиц аудита (то есть таблиц DATABASECHANGELOGLOCK и DATABASECHANGELOG) в этой схеме? Если да, как я могу это сделать?

Кроме того, кто-то может сказать мне, когда будет выполнено первое в истории развертывание, как и где код определяет, что эти таблицы аудита создаются впервые в схема? Пожалуйста помоги.

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Если у вас нет INSERT / UPDATE / CREATE в этой схеме, вы должны настроить проект (т.е. в своем файле liquibase.properties или в своем POM, или, тем не менее, вы задали такие вещи в своем приложении), так что таблицы отслеживания Liqiubase хранятся в схеме, к которой у вас есть доступ. Вы не хотите их создавать, так как это исключило бы почти все преимущества использования Liquibase. Настраиваемое свойство называется liquibaseSchemaName

Другой ответ здесь от @htshame относительно местоположения кода правильный.

1 голос
/ 03 марта 2020

Предполагается, что Liquibase подключен к базе данных и имеет достаточно привилегий для работы. Таблицы databasechangelog и databasechangeloglock необходимы для отслеживания изменений схемы. Итак, нет, вы не можете подавить создание этих таблиц.

И ответить на вторую часть вашего вопроса (я могу ошибаться по этому поводу):

Я полагаю, что это не так, но FYI Liquibase имеет "Автономный режим" для случаев, когда у вас нет прямого доступа к базе данных. Вот документация для Поддержка автономной базы данных .

Вместо создания таблиц в вашей базе данных, он создаст (по умолчанию) databasechangelog.csv файл в вашем рабочем каталоге.

...