답변:
버전이 8.4.0 미만인 경우
pg_dump -D -t <table> <database>
처음에 테이블을 설정하는 CREATE TABLE 등없이 INSERT 만 원하는 경우 -a
앞에 추가하십시오 -t
.
버전> = 8.4.0
pg_dump --column-inserts --data-only --table=<table> <database>
-d
, -a
및 -t
짧은 버전은 여전히 존재합니다. PG11로 확인했습니다.
--inserts
또 다른 옵션입니다. 그것은 약간 빠른 복원하지만 열 순서 변경을 용인 할 수 없다
내가 좋아하는 스크립트에 넣으십시오.
#!/bin/bash
set -o xtrace # remove me after debug
TABLE=charge_unit
DB_NAME=prod_sit_entities_db
BASE_DIR=/var/backups/someDir
LOCATION="${BASE_DIR}/myApp_$(date +%Y%m%d_%H%M%S)"
FNAME="${LOCATION}_${DB_NAME}_${TABLE}.sql"
# Create backups directory if not exists
if [[ ! -e $BASE_DIR ]];then
| mkdir $BASE_DIR
| chown -R postgres:postgres $BASE_DIR
fi
sudo -H -u postgres pg_dump --column-inserts --data-only --table=$TABLE $DB_NAME > $FNAME
sudo gzip $FNAME