Ответ 1
pg_restore
, при запуске без имени базы данных выводится текстовый дамп в stdout; вы можете отправить это в другом месте с помощью -f
или с перенаправлением ввода/вывода.
pg_restore -f mydatabase.sql mydatabase.dump
Я хочу искать некоторые данные внутри дампа базы данных, но эти дампы используют двоично сжатый формат (PGDMP
header).
Как я могу преобразовать их в SQL без их восстановления?
pg_restore
, при запуске без имени базы данных выводится текстовый дамп в stdout; вы можете отправить это в другом месте с помощью -f
или с перенаправлением ввода/вывода.
pg_restore -f mydatabase.sql mydatabase.dump
Самый быстрый метод, который я использовал:
pg_restore mybinaryfile.backup > mysqlfile.sql
Нет специальных флагов, так как pg_restore просто выплевывает его в стандартный вывод.
Обратите внимание, что если вы запускаете несколько кластеров, команде восстановления может не нравиться версия по умолчанию...
pg_restore: [архиватор] неподдерживаемая версия (1.12) в заголовке файла
В этом случае вы должны указать версию, хост и порт как:
pg_restore --cluster 9.1/localhost:5433 -f db.sql db.pgsql
(обратите внимание, что информация host:port
игнорируется с параметром -f.)
Порт (5433) можно определить с помощью команды pgsql
, как в:
pgsql --port 5433 template1
Когда pgsql
соединяется, он пишет комментарий, например:
psql (9.3.6, сервер 9.1.13)
Это означает, что вы используете pgsql 9.3.6, а этот порт 5433 ссылается на сервер 9.1.13.
Если вы не уверены, какие порты в настоящее время используются, вы можете использовать команду netstat
, как в:
sudo netstat -a64np | grep LISTEN | grep postgres
Для параметра -p
, который печатает имя процесса, требуется sudo
. Это дает вам список портов (обычно TCP и UDP-портов).
Наконец, в системе Debian/Ubuntu вы можете получить список установленных кластеров с помощью команды dpkg -l
, как в:
dpkg -l '*postgres*'
В настоящий момент установлен список записей, начинающихся с "ii" (слева от большинства столбцов). У вас, конечно же, есть аналогичные команды для других Unices, которые помогут вам определить установленные версии.