飞威公司的文件上说
Flyway使用数据库的锁定技术来协调多个节点。这确保了即使应用程序的多个示例同时尝试迁移数据库,它仍然可以正常工作。完全支持群集配置。
当迁移到Flyway版本> 6的MariaDB加莱拉集群上时(可能更早,还没有检查),MySQLConnection
或MySQLNamedLockTemplate
用于协调同时迁移的多个节点之间的锁。MySQLConnection
/MySQLNamedLockTemplate
通过get_lock()
实现锁
但是,get_lock()
是not supported in Galera:
不支持的显式锁定包括[...] GET_LOCK(),[...]
实际上,在加莱拉集群上的两个节点上并行迁移时,我们经常看到错误,因为两个节点都试图同时迁移(即使在grouped mode中)。
它看起来像this was a known issue in 2018。该问题的当前状态如何?在Flyway项目中,是否有支持加莱拉集群并行迁移的计划,或者是否有一些外部项目实现了这一点?
1条答案
按热度按时间hc2pp10m1#
此问题已在Flyway版本9.19.1中修复,请参阅release notes
pull request解决了这个问题。