flyway问题合集
文章目录
- 一、修改flyway里的sql后造成锁表
一、修改flyway里的sql后造成锁表
提示如下:
Caused by: org.flywaydb.core.api.FlywayException: Number of retries exceeded while attempting to acquire PostgreSQL advisory lock
原因:
1. 多个实例竞争锁:如果多个Flyway实例同时尝试获取同一个PostgreSQL
咨询锁,会导致锁竞争。2. 长时间运行的事务:如果某个事务长时间运行且持有锁,
其他需要获取锁的Flyway实例会因为超时而失败。
解决方式:
- SELECT pid, application_name, wait_event_type, wait_event, state FROM pg_stat_activity where state = ‘idle in transaction’
如果有锁表的情况,下面会有数据出现(这里已清理)
- 根据查询出来的pid,来关掉进程
SELECT pg_terminate_backend(pid的值);