【发布时间】:2015-03-10 23:27:36
【问题描述】:
我们有许多项目在多个服务器上运行,以查找一个数据库,我们正在考虑为每个项目设置 Flyway 以控制我们的数据库结构。
但我们担心并发迁移问题,如果一些项目同时重新部署。(偏离路线,我们总是注意sql语法中的“如果存在”)
当对同一个数据表或其他结构事物进行并发更改时,Flyway 如何工作?
【问题讨论】:
标签: flyway
我们有许多项目在多个服务器上运行,以查找一个数据库,我们正在考虑为每个项目设置 Flyway 以控制我们的数据库结构。
但我们担心并发迁移问题,如果一些项目同时重新部署。(偏离路线,我们总是注意sql语法中的“如果存在”)
当对同一个数据表或其他结构事物进行并发更改时,Flyway 如何工作?
【问题讨论】:
标签: flyway
它按预期工作。查看常见问题解答中的答案:https://flywaydb.org/documentation/learnmore/faq.html#parallel
多个节点可以并行迁移吗?
是的! Flyway 使用数据库的锁定技术来协调多个节点。这确保即使您的应用程序的多个实例尝试同时迁移数据库,它仍然可以工作。完全支持集群配置。
【讨论】:
flyway_schema_history 中插入一条以success=false 开头的记录,并使用这个插入进行乐观锁定,尽管这只是一个猜测。