Данный способ позволяет создать скрипт INSERT для наполнения таблицы PostgreSQL.
pg_dump -a -U postgres -t table_name -f output_name.sql --inserts --column-inserts --on-conflict-do-nothing database_name
Описание параметров:
- a — Выгружаются только данные, а не схема (определения данных). Выгружаются табличные данные, большие объекты и значения последовательности. Этот параметр аналогичен, но по историческим причинам не идентичен параметру, определяющему
--section=data
. - U — Имя пользователя для подключения как.
- t — Дамп только таблиц с совпадающими именами
- f — Отправляйте выходные данные в указанный файл. Этот параметр можно опустить для файловых форматов вывода, в этом случае используется стандартный вывод. Однако он должен быть указан для формата вывода каталога, где указывается целевой каталог, а не файл. В этом случае каталог создан
pg_dump
и не должен существовать ранее. - inserts — Дамп данных в виде
INSERT
команд (а неCOPY
). Это сильно замедлит восстановление; в основном это полезно для создания дампов, которые можно загружать в базы данных, отличные от PostgreSQL. Любая ошибка во время восстановления приведет к потере только строк, которые являются частью проблемной таблицы,INSERT
а не всего содержимого таблицы. Обратите внимание, что восстановление может завершиться полным сбоем, если вы изменили порядок столбцов. Опция--column-inserts
защищает от изменений порядка столбцов, хотя и работает еще медленнее. - column-inserts — Дамп данных в виде
INSERT
команд с явными именами столбцов (INSERT INTO
). Это сильно замедлит восстановление; в основном это полезно для создания дампов, которые можно загружать в базы данных, отличные от PostgreSQL. Любая ошибка во время восстановления приведет к потере только строк, которые являются частью проблемной таблицыtable
(column
, ...) VALUES ...INSERT
, а не всего содержимого таблицы. - on-conflict-do-nothing — Добавить команды
ON CONFLICT DO NOTHING
вINSERT
. Этот параметр недопустим, если также не указано--inserts
,--column-inserts
или--rows-per-insert
.
Пример:
pg_dump -a -U postgres -t dbo.cs_point_types -f cs_point_types.sql --inserts --column-inserts --on-conflict-do-nothing skr-dev-db