postgresql - pg_dump 로 table 내용 insert 문으로 전환하기

상황

  1. 서버 A에 postgres DB가 설치되어 있고, data도 저장되어 있다.
  2. 앞으로 같은 postgres DB를 여러 서버에 설치해야한다.
  3. application 설치할때 postgres DB와 table들은 생성이 되는데, data는 직접 넣어줘야 한다.
  4. 서버 A와 같은 data를 매번 설치때마다 입력해줘야 한다.

해결

→ 서버 A의 테이블 내용들을 insert 문으로 써서 여러 서버 설치시에 스크립트로 입력한다.

명령어

pg_dump -U [username] -d [databasename] --data-only --column-inserts  -t [tablename] > insert_test.dump

—data-only : data 관련 내용만 dump를 뜬다. 이 옵션을 적용하지 않으면 alter table 등의 더 많은 내용이 dump된다.

—column-insert : 이 옵션을 쓰면 table 내용을 INSERT INTO {table name} (column1, column2) VALUES (value1, value2); 와 같은 형식으로 dump한다. 아니면 copy 구문이 적용된다.

-t [table_name]: 이 옵션을 쓰면 특정 table만 dump하고 아니면 모든 table을 dump한다.

더 많은 옵션 : https://www.postgresql.org/docs/current/app-pgdump.html

댓글 쓰기

0 댓글