Flyway如何处理几个Dynos可以并行运行多个迁移的事实



我只是想知道Flyway如何处理以下事实:几个Dynos可以尝试在Heroku等聚类环境中多次运行数据库迁移,从而引起冲突?

似乎Flyway使用锁定来处理此问题。

引用文档:

多个节点可以并行迁移吗?是的!Flyway使用锁定 数据库的技术以协调多个节点。这确保了 即使您的申请的多个实例也尝试 同时迁移数据库,它仍然有效。簇 配置得到完全支持。

这个问题更多地解释了锁定行为的工作原理。它似乎在Flyway模式表上获取锁:select * from dbschema.schema_version for update可能会导致较长的运行迁移问题,因为innodb_lock_wait_timeout设置可能会导致超时,至少在MySQL的情况下。

最新更新