【发布时间】:2015-07-25 05:46:42
【问题描述】:
我只是想知道 Flyway 如何处理这样一个事实,即多个 dyno 可以尝试在 Heroku 等集群环境中多次运行数据库迁移从而导致冲突?
【问题讨论】:
我只是想知道 Flyway 如何处理这样一个事实,即多个 dyno 可以尝试在 Heroku 等集群环境中多次运行数据库迁移从而导致冲突?
【问题讨论】:
Flyway 似乎使用锁定来处理这个问题。
引用文档:
多个节点可以并行迁移吗?是的! Flyway 使用锁定 数据库技术来协调多个节点。这确保 即使您的应用程序的多个实例尝试 同时迁移数据库,它仍然有效。簇 完全支持配置。
【讨论】:
question 更多地解释了锁定行为的工作原理。它似乎在 Flyway 模式表上获得了锁:select * from dbschema.schema_version for update,这可能会导致长时间运行的迁移出现问题,因为innodb_lock_wait_timeout 设置可能会导致超时,至少在 MySQL 的情况下是这样。
【讨论】: