Мой вариант использования следующий:
pg_dump -F p (текстовый файл сценария SQL), и я не могу контролировать, как они создаются.pg_restore (--no-owner, --data-only, --clean и т. д.)Я знаю, что должен использовать psql с дампами SQL в виде простого текста, но есть ли способ преобразовать дамп SQL в дамп нестандартного формата PostgreSQL, чтобы я мог использовать pg_restore, или какой-то способ получить все его параметры?
Спасибо за внимание.
Я стою рядом с мистером Конем без имени, вы действительно не можете этого сделать, за исключением, очевидно, дампов.





Как упоминалось в других ответах / комментариях, вы не можете напрямую преобразовать его. Что вам нужно сделать, так это создать временную базу данных из файла резервной копии sql и использовать pg_dump, чтобы создать из нее собственный формат.
Убедитесь, что резервная копия sql не является «чистым» файлом восстановления, т. Е. Не удаляет базу данных в верхней части файла. Если это так, удалите "DROP DATABASE dbase" ..
Создайте временную базу данных:
psql
CREATE DATABASE mytempdb;
\q
Затем восстановите резервную копию, которая у вас есть:
psql mytempdb < my_database_backup.sql
Примечание. Вот почему вам НЕ нужна строка «drop database ...» в верхней части файла sql. Вместо этого будет удалена ваша исходная база данных.
Выгрузите его как произвольный формат:
pg_dump mytempdb -Fc -f custom_format.dump
Когда вы закончите, было бы хорошо удалить эту временную базу данных: psql --command = "DROP DATABASE mytempdb;"
Нет, конвертировать нельзя. Единственный способ создать дамп в произвольном формате - использовать
pg_dump -F c.