라우팅 데이터 소스의 세 가지 근본 원인
증상
읽기/쓰기 데이터 소스 라우팅 변경 후 백엔드 시작이 곧 실패하며, 종종 jpaSharedEM_entityManagerFactory unresolved와 같은 잘못된 다운스트림 메시지 또는 다른 엔터티 관리자 연결 오류로 인해 실패합니다.
이 실패 클래스는 현재 백엔드 소스에 직접 문서화되어 있습니다.
lumie-backend/app/src/main/java/com/lumie/app/config/RoutingDataSourceConfig.javalumie-backend/app/src/main/resources/application.yamllumie-backend/app/src/test/java/com/lumie/app/config/RoutingDataSourceIntegrationTest.java
대신 Flyway CREATE INDEX CONCURRENTLY에서 시작이 중단되면 Flyway Monolith Migration Traps를 사용하세요.
실제 근본 원인
2026-05-20 사건 노트는 모두 동일한 JPA Bean 오류로 가장할 수 있는 세 가지 업스트림 원인을 좁혔습니다.
- Hibernate 방언 자동 감지는
LazyConnectionDataSourceProxy에 대해 실행되며 엔터티 관리자 부팅 중에 실제 JDBC 메타데이터를 읽을 수 없습니다. AbstractRoutingDataSource는 내부적으로 생성되지만afterPropertiesSet()를 수신하지 않으므로 첫 번째 JDBC 사용에서는DataSource router not initialized가 발생합니다.- Flyway는 원시 기본 데이터 소스 또는 전용 마이그레이션 데이터 소스 대신 지연 라우팅 프록시에서 데이터 소스를 파생시키려고 합니다.
진단
체결된 계약을 먼저 확인하세요.
application.yaml는 여전히spring.jpa.database-platform: org.hibernate.dialect.PostgreSQLDialect를 고정해야 합니다.RoutingDataSourceConfig는new LazyConnectionDataSourceProxy(routing)를 반환하기 전에routing.afterPropertiesSet()를 호출해야 합니다.RoutingDataSourceConfig는 기본 URL과spring.flyway.user/password에서 빌드된 전용@FlywayDataSource를 계속 노출해야 합니다.
현재 구성 주석은 해당 행이 존재하는 이유를 명시적으로 기록하므로 이 오류가 다시 나타날 때 가장 먼저 정보를 얻을 수 있는 소스입니다.