현재이 고객의 기본 구조에서 새 데이터베이스를 만들 수있는 방법으로 고객 데이터베이스 중 하나를 덤핑하려고합니다. 그들의 개인 데이터를 따라-exclude-table-data를 사용하여 pg_dump에서 외래 키 제약 조건 적용
지금까지 pg_dump
과 --exclude_table
및 exclude-table-data
명령을 결합하여 성공 했으므로이 작업에 필요한 데이터 만 가져올 수있었습니다.
그러나 내가 가지고 있어야하는 데이터를 참조하는 다른 줄과 함께 남겨진 일부 데이터를 참조하는 줄이 혼합되어있는 테이블이 몇 개 있는데이 때문에 복원 작업 중에 몇 가지 문제가 발생합니다. 특히 덤프가이 테이블의 특정 열에 대해 FOREIGN KEY
제약 조건을 적용하려고하면이 테이블의 데이터를 가져 오지 않기 때문에 각 외부 테이블에 일치하는 데이터가없는 키가있는 일부 줄이 있기 때문에 실패합니다!
덤프가 완료된 후 데이터베이스에 로그인 할 수 있음을 알고 더 이상 존재하지 않는 데이터를 참조하는 행을 삭제하고 제한 조건을 직접 만들지 만 가능한 한 프로세스를 자동화하고 싶습니다. pg_dump
또는 pg_restore
(또는 다른 프로그램)이 테이블 B를 참조하고 테이블 B의 데이터가 백업에서 제외 된 경우 테이블 A의 행을 가져 오지 않도록 지시 할 수 있습니까? 또는 Postgres에게 테이블의 데이터를 가져 오기 전에 특정 외래 키를 활성화하고 싶다고 말하고 싶습니까?
참고로, 저는 PostgreSQL 9.2를 HREL 7 서버에서 사용하고 있습니다.