PostgreSQL 'read-only 트랜잭션에서 CREATE TABLE 실행할 수 없음' 오류 해결 방법
(dev.to)PostgreSQL 마이그레이션 중 발생하는 'read-only 트랜잭션' 오류의 원인과 해결책을 분석하며, 특히 복제본(Replica)으로의 잘못된 연결이나 권한 설정 오류가 서비스 장애와 데이터 불일치를 초래할 수 있음을 경고하고 인프라 수준의 방어 전략을 제시합니다.
이 글의 핵심 포인트
- 1PostgreSQL의 read-only 트랜잭션 내에서는 CREATE TABLE과 같은 DDL 실행이 불가능함
- 2주요 원인으로 PgBouncer/RDS Proxy를 통한 리플리카 노드 라우팅, 또는 Role에 설정된 읽기 전용 기본값 등이 있음
- 3마이그레이션 실패 시 Liquibase/Flyway 등의 락 테이블(Lock table)에 잠금이 남아 후속 작업이 차단될 수 있음