Flyway:多个节点与PgBouncer事务池并行迁移



我们遇到了使用Flyway进行多个节点并行数据库迁移的问题,这些节点由PgBouncer后面的PostgreSQL数据库和事务池支持。

问题是,当多个节点同时启动时,Flyway会获得一个独占锁定,但这似乎是一个会话锁定,PgBouncer事务池不支持该锁定(因为多个节点可能会获得同一会话(。这会导致每个节点无法启动,因为它们已经锁定了彼此。

我们可以在Flyway中更改或配置什么来支持这一点吗?如果可能的话,我们不希望放弃事务池,因为这是我们使用PgBouncer的主要动机。

目前,Flyway不支持PgBouncer,因此您会看到由于缺乏支持而出现的错误。目前开发人员没有解决方案。我建议在社区Github上打开一个问题。这是获取更改的最佳方式。

作为一种变通方法,我们目前正在为我们的应用程序配置两个数据源-一个是正常的PgBouncer,另一个是仅用于Flyway的单个连接,该连接绕过PgBounce并直接连接到PostgreSQL后端。

最新更新