Відповіді:
якщо версія <8.4.0
pg_dump -D -t <table> <database>
Додайте -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
на випадок, якщо ви використовуєте віддалений доступ і хочете скинути всі дані бази даних, ви можете використовувати:
pg_dump -a -h your_host -U your_user -W -Fc your_database > DATA.dump
це створить дамп із усіма даними бази даних та використання
pg_restore -a -h your_host -U your_user -W -Fc your_database < DATA.dump
щоб вставити ті самі дані у свою базу даних, враховуючи, що у вас однакова структура