TOAST 컬럼, replication slot, publication, 스키마 변경, 데이터 타입 매핑 등 Postgres 복제의 작동 방식과 관련된 많은 질문은 ClickPipes for Postgres FAQ에서 다룹니다. 해당 정보는 ClickHouse Managed Postgres 마이그레이션에도 적용됩니다.
복제 중 “enum의 입력 값이 잘못되었습니다” 오류가 표시됩니다
ALTER TYPE ... ADD VALUE 명령을 자동으로 전파하지 않으므로, 초기 스키마 설정 후 원본에 추가된 새 enum 값 때문에 대상에서 삽입이 실패합니다.
이 문제를 해결하려면 대상 Postgres의 enum 유형에 누락된 값을 추가하십시오:
your_enum_type을 enum 유형 이름으로, 'new_value'를 오류 메시지에 표시된 누락된 값으로 바꾸십시오.
복제 중 고유 제약 조건 또는 검사 제약 조건 위반 오류가 발생합니다
- 고유 제약 조건: 변경 사항은 프라이머리 키별 최신 값을 기록하는 일괄
MERGE/UPSERT작업으로 적용되므로, 특정 키의 작업 순서가 고유 인덱스에서 예상하는 순서와 일치하지 않을 수 있습니다. 이로 인해MERGE가 완료된 후에는 제약 조건이 충족되더라도 트랜잭션 내에서는 일시적으로UNIQUE제약 조건을 위반할 수 있습니다. Postgres는 외래 키처럼 고유 인덱스 검사를 지연할 수 없으므로, 검사를 트랜잭션 종료 시점까지 미룰 방법이 없습니다. 이는 데이터 일관성에 영향을 주지 않습니다. 행 아이덴티티는 프라이머리 키로 정의되며,MERGE로직도 동일한 프라이머리 키를 기준으로 하기 때문입니다. - 검사 제약 조건: 대상의 검사 제약 조건이 원본보다 더 엄격할 수 있으며, 일괄
MERGE중간 상태가 최종 상태에서는 제약 조건을 충족하더라도 일시적으로 이를 충족하지 못할 수 있습니다. 고유 제약 조건과 마찬가지로,MERGE는 행 아이덴티티를 정의하는 프라이머리 키를 기준으로 하므로 이는 데이터 일관성에 영향을 주지 않습니다.