Flyway如何处理几个dynos可以尝试并行运行多个迁移的事实?

时间:2015-05-13 19:06:36

标签: heroku flyway

我只是想知道Flyway如何处理这样一个事实:几个dynos可以尝试在Heroku等集群环境中多次运行数据库迁移,从而导致冲突?

2 个答案:

答案 0 :(得分:1)

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

引用文档:

  

多个节点可以并行迁移吗?是! Flyway使用锁定   数据库的技术,以协调多个节点。这确保了   即使你的应用程序的多个实例都试图这样做   同时迁移数据库,它仍然有效。簇   完全支持配置。

答案 1 :(得分:1)

This question explains a bit more how the locking behaviour works. It appears to acquire a lock on the Flyway schema table: select * from dbschema.schema_version for update which might cause problems for longer running migrations as the innodb_lock_wait_timeout setting might cause a timeout, at least in the case of MySQL.