Содержание

Перенос БД PostgreSQL

Заметка о снятии копии БД и развёртывании в новом месте.

Копия БД в формате SQL:

shell

pg_dump -v dbName > dbName.sql

Дамп в собственном формате, запакованный в Tar-архив:

shell

pg_dump -v -Ft dbName > dbName.tar

--clean — добавляет выражения очистки БД;
--create — добавляет выражения создания БД.

Дамп всех ролей (пользователей):

shell

pg_dumpall -v --roles-only > roles.sql

Из SQL в существующую БД:

shell

psql -d dbName -f dbName.sql

Из Tar-архива в существующую БД:

shell

pg_restore -v -Ft -d dbName dbName.tar

Из Tar-архива с созданием БД:

shell

pg_restore -v -Ft --create -d postgres dbName.tar

В режиме создания БД выполняются выражения из архива, созданные при дампе. В этом случае -d всего лишь указывает на БД (postgres), к которой установить первоначальное соединение. В примере будет создана БД dbName.

  1. pg_dump
  2. pg_restore
  3. postgresql: how do I dump and restore roles for a cluster?