Как Liquibase обрабатывает выполнение от нескольких пользователей?

У нас есть база данных PostgreSQL, которая постоянно обновляется с помощью liquibase одним пользователем (роль владельца БД). Недавно мы запустили команду обновления от имени другого пользователя (владельца системы), и она была зарегистрирована, как если бы это была новая БД/схема, а это означает, что Liquibase пыталась выполнить все наборы изменений с самого начала, а не только те, которые, как мы ожидали, будут последними. которых не было в таблице databasechangelog. Очевидно, это не удалось, поскольку эти наборы изменений уже были применены от имени другого пользователя. Однако возник вопрос, как с этим бороться. Вы знаете, почему оно это делает? Это проблема, связанная с БД, или это проблема на уровне liquibase? Или это вообще проблема, и мы должны принять как часть наших бизнес-процессов, что все обновления конкретной БД должны выполняться одним и тем же пользователем?


person Neil    schedule 10.04.2014    source источник
comment
Может быть, другой пользователь запустил liquibase, используя копию файлов набора изменений, чтобы путь был другим? Весь путь является частью идентификатора!   -  person Jens    schedule 11.04.2014


Ответы (2)


Liquibase определяет, какие наборы изменений выполнялись, выбирая из таблицы DATABASECHANGELOG. Я предполагаю, что у нового пользователя другая схема по умолчанию, и поэтому он ищет эту таблицу в другом месте.

В зависимости от того, как вы запускаете Liquibase, существует changelogSchemaName или аналогичный атрибут для управления тем, где Liquibase ищет таблицу.

person Nathan Voxland    schedule 10.04.2014

Похоже, что Liquibase не зависит от пользователя, и эта информация не записывается и не требуется в DATABASECHANGELOG.

person Neil    schedule 10.04.2014