Самый простой вызов этой утилиты выглядит так:
pg_dump база > файл_дампа
Если нужно задампить только одну таблицу:
pg_dump -t таблица база > файл_дампа
Если нужно указать имя пользователя, хост и порт, то нужно применить соответсвующие опции:
pg_dump -U пользователь -h хост -p порт базы > файл_дампа
или
pg_dump -U пользователь --host=хост --port=порт базы > файл_дампа
pg_dump -U пользователь --host=хост --port=порт базы > файл_дампа
Во всех приведенных вариантах вызовов, pg_dump запросит пароль пользователя. Если вы пишите скрипт для автоматического бекапирования, то такое поведение не подходит -- пароль должен передаваться из скрипта. Для этого существует переменная окружения PGPASSWORD. Следующий вызов не запросит пароль пользователя:
set PGPASSWORD = пароль_пользователя
pg_dump -U пользователь база > файл_дампа
Помимо переменной с паролем поддерживаются следующие переменные окружения:
- PGDATABASE - база данных;
- PGHOST - хост;
- PGPORT - порт;
- PGUSER - имя пользователя.
Очень полезно при бекапе ставить ключ --inserts, который для вставки данных в таблицы использует INSERT выражения (а не COPY как по умолчанию, которые понимает только pg_dump).
Ключ -c или --clean вставляет DROP выражения перед выражениями CREATE. Удобно если вы разворачиваете дамп в базу в которой уже есть таблицы и вам их нужно заменить.