2015-05-13 1 views
1

Мне просто интересно, как Flyway имеет дело с тем, что несколько динозавров могут пытаться запустить миграцию базы данных несколько раз в кластерной среде, такой как Heroku, тем самым вызывая конфликт?Как Flyway справляется с тем, что несколько динозавров могут пытаться параллельно запускать несколько миграций?

ответ

1

Кажется, что Flyway использует блокировку для решения этой проблемы.

Процитирую документацию:

Могут ли несколько узлов мигрировать параллельно? Да! Flyway использует технологию блокировки вашей базы данных для координации нескольких узлов. Это обеспечивает , что даже если даже несколько экземпляров вашего приложения попытаются выполнить , то миграция базы данных будет выполняться одновременно. Конфигурации кластера полностью поддерживаются.

1

Это question объясняет, как работает блокировка. Как представляется, для блокировки схемы схемы пролета FlyLock существует блокировка: select * from dbschema.schema_version for update, что может вызвать проблемы для более длительных мигрантов, поскольку параметр innodb_lock_wait_timeout может привести к таймауту, по крайней мере, в случае MySQL.

 Смежные вопросы

  • Нет связанных вопросов^_^