как flyway блокирует схему postgres?

Я использую Flyway с Postgres и заметил, что если у меня работает сервер tomcat, и я пытаюсь выполнить DROP SCHEMA foo, он не работает, пока tomcat не выключится. Я предполагаю, что у flyway есть какой-то механизм для блокировки изменений схемы после ее запуска. Как осуществляется блокировка других клиентов, изменяющих схему, в flyway.


person ams    schedule 07.09.2012    source источник


Ответы (1)


Flyway не блокирует схему.

Когда он начинает применять миграцию, он начинает транзакцию. Затем он получает блокировку таблицы метаданных, используя SELECT * FROM metadatatable FOR UPDATE. Эта блокировка снимается автоматически после завершения миграции, когда транзакция фиксируется или откатывается.

person Axel Fontaine    schedule 09.09.2012
comment
Глядя на код src сегодня, он пытается pg_try_advisory_lock с тайм-аутом всего 5 секунд: github.com/flyway/flyway/blob/master/flyway-core/src/main/java/ - person Piran; 01.04.2020