Answers:
如果版本<8.4.0
pg_dump -D -t <table> <database>
添加-a
前-t
,如果你只想要插入,而不CREATE TABLE等来设置表摆在首位。
版本> = 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