В моем приложении Liquibase использует специального пользователя liquibase
для подключения к базе данных и применения всех наборов изменений. В результате все созданные таблицы, последовательности, функции и т. д. принадлежат пользователю liquibase
. Пользователь liquibase
является участником роли db_ddl_admin
и я бы хотел, чтобы эта роль стала владельцем всех созданных объектов. Я мог бы добиться этого, добавив оператор SET ROLE TO db_ddl_admin
в начале каждого набора изменений, но мне не нравится такой подход. Есть ли централизованный способ установить такие настройки в Liquibase?
Liquibase использует одно соединение для всех наборов изменений. Так что достаточно один раз запустить оператор SET ROLE
в начале журнала изменений:
<databaseChangeLog ...>
<changeSet runAlways = "true" author = "setup" id = "init-role" dbms = "postgresql">
<sql>SET ROLE TO db_ddl_admin</sql>
</changeSet>
... your changeSets go here ...
</databaseChangeLog>