42P07: duplicate_table
PostgreSQL의미
생성하려는 테이블(또는 유사 객체)이 이미 존재한다. 같은 이름의 객체가 있어 CREATE가 실패했다.
원인
CREATE TABLE로 기존 테이블을 다시 생성. 스크립트를 두 번 실행. 마이그레이션 재적용. 같은 이름의 뷰/시퀀스/인덱스와 이름 충돌.
해결 방법
객체가 이미 존재하면 생성을 건너뛰도록 IF NOT EXISTS를 사용한다: CREATE TABLE IF NOT EXISTS my_table (...). 정말로 다시 생성하려면 먼저 삭제한다: DROP TABLE IF EXISTS my_table; 마이그레이션을 재실행해도 안전하게(멱등하게) 만든다. \dt로 기존 객체를 확인한다.