Estamos encontrando problemas con el uso de Flyway para migraciones de bases de datos con múltiples nodos en paralelo, respaldados por una base de datos PostgreSQL detrás de PgBouncer con agrupación de transacciones .
El problema es que cuando se inician varios nodos al mismo tiempo, Flyway obtiene un bloqueo exclusivo, pero parece ser un bloqueo de sesión , que no es compatible con la agrupación de transacciones de PgBouncer (ya que varios nodos pueden obtener la misma sesión). Esto hace que cada nodo no se inicie porque se bloquearon entre sí.
¿Hay algo que podamos cambiar o configurar en Flyway para admitir esto? Preferiríamos no cambiar la agrupación de transacciones si es posible, ya que esa es nuestra principal motivación para usar PgBouncer.
Por el momento, Flyway no es compatible con PgBouncer, por lo que está viendo errores debido a la falta de soporte. No hay soluciones alternativas de los desarrolladores actualmente. Sugeriría abrir un problema en Community Github . Esa es la mejor manera de introducir cambios.
Como solución alternativa, actualmente estamos configurando dos fuentes de datos para nuestra aplicación: una para PgBouncer como de costumbre y otra con una sola conexión que se usa únicamente para Flyway que omite PgBouncer y se conecta directamente al back-end de PostgreSQL.