개요

Postgres를 docker로 운영하며 활용하는 주요 명령어들을 정리해둔다.

postgres docker 안에 PSQL 접속하기

$ docker exec -it DOCKER_NAME psql -U postgres -W postgres postgres

psql 데이터베이스 리스트

\l

psql 테이블 리스트

\dt
SELECT * FROM pg_catalog.pg_tables

psql 종료

\q

postgres 백업 명령어들

여기서 /var/lib/postgresql/data가 docker의 postgresql data가 바깥으로 마운트된 경로

$ docker exec -it DOCKER_NAME bash
$ pg_dumpall -U postgres > /var/lib/postgresql/data/20180515.dump
$ pg_dumpall -U postgres > /var/lib/postgresql/data/20181018.dump
$ pg_dump -U postgres -f /var/lib/postgresql/data/20181112_5.dump -Fc -C -d postgres #DB명 바꿀 때
$ pg_dump -U postgres -f /var/lib/postgresql/data/20181112_4.dump -Fp -C -d postgres #DB명 바꿀 때

실제 마이그레이션 시 사용한 명령어

$ pg_dumpall -U postgres -g -f /var/lib/postgresql/data/20181127_dumpall.dump
$ pg_dump -U postgres -f /var/lib/postgresql/data/20181127_fc.dump -Fc -C -d postgres

psql로 복원

아래에서 postgres의 의미는 DB명이다.

$ psql -f infile postgres -U postgres -W postgres postgres

docker 기준은 아래와 같이 명령어를 내릴 가능성이 높다.

$ psql -f /var/lib/postgresql/data/20181002.dump postgres -U postgres -W postgres postgres

postgres 접속 시

기본 설치 시 아래와 같이 접속하면 된다.

$ su - postgres
$ psql

마이그레이션

  $ pg_dumpall -U postgres -g -f /var/lib/postgresql/data/20181127_dumpall.dump
  $ pg_dump -U postgres -f /var/lib/postgresql/data/20181127_fc.dump -Fc -C -d postgres

참고자료