Я использую Flyway с Postgres и заметил, что если у меня работает сервер tomcat, и я пытаюсь выполнить DROP SCHEMA foo
, он не работает, пока tomcat не выключится. Я предполагаю, что у flyway есть какой-то механизм для блокировки изменений схемы после ее запуска. Как осуществляется блокировка других клиентов, изменяющих схему, в flyway.
как flyway блокирует схему postgres?
Ответы (1)
Flyway не блокирует схему.
Когда он начинает применять миграцию, он начинает транзакцию. Затем он получает блокировку таблицы метаданных, используя SELECT * FROM metadatatable FOR UPDATE
. Эта блокировка снимается автоматически после завершения миграции, когда транзакция фиксируется или откатывается.
person
Axel Fontaine
schedule
09.09.2012
Глядя на код src сегодня, он пытается pg_try_advisory_lock с тайм-аутом всего 5 секунд: github.com/flyway/flyway/blob/master/flyway-core/src/main/java/
- person Piran; 01.04.2020