- postgresql을 superuser로 접속한뒤 aa라는 DB를 bb라는 DB로 동일하게 복사할 수 있는 방법
이 있을까요? dump등을 이용하는 방법이 있기는 하지만 프로그램 상에서
처리해야만 합니다. 동일한 DB에서 Table간의 데이터 이동은 해보았지만
DB이동은 모르겠네요..
db 서버와 같은 기계에서 돌아가는 프로그램이라면 dump를 system 명령으로 실행시키면 간단하겠죠?
아니면 pg_dump 소스코드를 가지고 와서 내장하시거나요. 보니까 pg_dump의 코드가 그렇게 복잡하지는 않은 것 같더군요. 다만 version별로 다양한 상황을 처리하기 위한 코드들이 많아서 db 서버의 버전이 정해져있다면 필요 없는 부분들이 많이 있을겁니다.
소스 코드 디렉토리안에, contrib/dblink 모듈이 있습니다.
이놈 이용하면 쿼리로 db간 자료를 복사할 수도 있을 것같네요.
문제는 table의 자료구조를 그대로 보존하는 문제는
같은 db 안에서의 테이블간 자료구조 보존하는 문제와 동일할겝니다.
create table ... as select ..
이놈으로는 원본 테이블의 구조를 그대로 따르지는 않을듯하네요.
먼저 저장할 테이블을 똑 같은 자료구조로 만들고,
insert into ... select 로 풀어야할듯.
넵.. 답변 감사합니다. insert into를 한번 찾아봐야 겠네요..