postgresql pg_dump

Примеры Выгрузка базы данных mydb в файл SQL-скрипта:

 $ pg_dump mydb > db.sql

Восстановление из ранее полученного скрипта в чистую базу newdb:

 $ psql -d newdb -f db.sql

Выгрузка базы данных в формате custom:

 $ pg_dump -Fc mydb > db.dump

Выгрузка базы данных в формате directory:

 $ pg_dump -Fd mydb -f dumpdir

Выгрузка базы данных в формате directory в 5 параллельных потоков:

 $ pg_dump -Fd mydb -j 5 -f dumpdir

Восстановление из архива в чистую новую базу данных newdb:

 $ pg_restore -d newdb db.dump

Выгрузка отдельной таблицы mytab:

 $ pg_dump -t mytab mydb > db.sql

Выгрузка всех таблиц, имена которых начинаются с emp и которые принадлежат схеме detroit, кроме таблицы employee_log:

 $ pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb > db.sql

Выгрузка всех схем, имена которых начинаются с east или west, заканчиваются на gsm и не содержат test:

 $ pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb > db.sql

То же самое, но с использованием регулярного выражения:

 $ pg_dump -n '(east|west)*gsm' -N '*test*' mydb > db.sql

Выгрузка всех объектов базы данных, кроме таблиц, имена которых начинаются с ts_:

 $ pg_dump -T 'ts_*' mydb > db.sql

Чтобы указать имя в верхнем или смешанном регистре в ключе -t и связанных с ним, это имя нужно заключить в кавычки; иначе оно будет приведено к нижнему регистру (см. Шаблоны поиска). Но кавычки являются спецсимволом для оболочки, так что и их нужно заключать в кавычки. Так, чтобы выгрузить одну таблицу с именем в смешанном регистре, нужно написать примерно следующее:

 $ pg_dump -t "\"MixedCaseName\"" mydb > mytab.sql
Только авторизованные участники могут оставлять комментарии.
  • blog/postgresql_pg_dump.txt
  • Последние изменения: 2019/09/24