A-> B 에서
A 시스템에 B쪽의 특정 테이블을 파일로 떨굴려고 합니다.
PG_DUMP 를 이용해서 테이블 전체를 A쪽에 떨굴수는 있는데 조건은 불가하네요.
특정 조건만 A쪽에 떨구는 방법이 있을까요?
이런 작업은 psql \copy 명령어를 이용합니다.
pg_dump로 해당 테이블의 DDL 구문만 뽑아서(-s 옵션)
원하는 곳에 일단 빈테이블을 만들고,
원본이 있는 데이터베이스를 psql로 접속해서,
\copy (select * from t where .....) to 'filename'
이런형태로 psql을 실행한 호스트에 파일로 만들고,
다시 psql로 새로 넣을 데이터베이스로 접속해서
\copy t from 'filename'
이런형태로 자료를 넣습니다.
명령어만 모으면,
$ pg_dump -h old.server.name -U dbuser -s -t table_name database_name > table_ddl.sql
$ psql -h old.server.name -U dbuser database_name
\copy (select * from table_name where .....) to 'filename'
\q
$ psql -h new.server.name -U dbuser database_name
\i table_ddl.sql
\copy table_ddl from 'filename'
이렇게 되겠네요.
이 모든 작업은 한 호스트에서 일어납니다.