Простой способ просмотреть файлы дампа postgresql?

У меня есть тонна файлов дампа postgresql, которые мне нужно просмотреть в поисках данных. Нужно ли мне устанавливать Postgresql и «восстанавливать» каждую из них в новые базы данных одну за другой? Или я надеюсь, что есть клиент postgresql, который может просто открыть их, и я могу просмотреть данные, возможно, даже запустить простой SQL-запрос?

Все файлы дампа взяты с сервера Postgresql v9.1.9.

Или, может быть, есть инструмент, который может легко «подключить» базу данных к файлам дампа?

ОБНОВЛЕНИЕ: это не текстовые файлы. Они двоичные. Они поступают из механизма резервного копирования Heroku, это то, что Heroku говорит о том, как они создают свои резервные копии < / а>:

PG Backups использует собственный инструмент PostgreSQL pg_dump для создания файлов резервных копий, что упрощает экспорт в другие установки PostgreSQL.


person at.    schedule 25.04.2013    source источник
comment
как были сделаны свалки? то есть ... у вас есть точная команда, используемая для их создания?   -  person swasheck    schedule 26.04.2013
comment
Дампы делались из механизма резервного копирования Heroku   -  person at.    schedule 26.04.2013


Ответы (6)


Попробуйте открыть файлы в текстовом редакторе - формат дампа по умолчанию - простой текст.

Если дамп не является простым текстом - попробуйте использовать команду pg_restore -l your_db_dump.file. Он перечислит все объекты в дампе базы данных (например, таблицы, индексы ...).

Другой возможный способ (может не работать, не пробовал) - grep через вывод команды pg_restore your_db_dump.file. Если я правильно понял руководство - результат pg_restore - это просто последовательность SQL-запросов, которые восстановят базу данных.

person Ihor Romanchenko    schedule 25.04.2013
comment
pg_restore команда, которая устанавливается при установке сервера Postgresql? Или я могу просто взять эту команду откуда-нибудь? - person at.; 26.04.2013
comment
pg_restore -l дает вам только таблицы и другие метаданные, но не фактические данные. Однако ваше последнее предложение сработало для меня идеально. - person at.; 26.04.2013

Это было то, что я искал:

pg_restore db.bin > db.sql

Спасибо @andrewtweber

person jcuenod    schedule 10.03.2015
comment
Файл дампа может быть большим. Если это так, я предлагаю вам попробовать pg_restore db.bin | less, если вы хотите только взглянуть, или выполнить pg_restore db.bin | psql dbname > log 2> error, если вы хотите восстановить его. - person Rodrigo Hjort; 18.05.2017
comment
Блестяще! Спасибо. - person rubStackOverflow; 31.01.2019
comment
Что теперь? pg_restore: [archiver] unsupported version (1.13) in file header - person Chloe; 14.09.2019
comment
@Chloe, это означает, что ваша pg_restore версия слишком мала для резервной копии, которую вы пытаетесь восстановить. - person Jeff; 27.01.2021
comment
В Postgres 13 мне пришлось вместо этого сделать pg_restore db.bin -f db.sql, см. Также ответ от @ AlexDev - person hangler; 05.03.2021

У меня была такая же проблема, и я сделал это:

  1. Установите Postgresql и PGAdmin3.
  2. Откройте PGAdmin3 и создайте базу данных.
  3. Щелкните правой кнопкой мыши базу данных и выберите "Восстановить".
  4. Игнорировать тип файла.
  5. Выберите файл дампа базы данных из Heroku.
  6. Щелкните Восстановить.
person Aaron Gray    schedule 17.07.2014

В более новых версиях вам нужно указать флаг -f с именем файла или '-' для стандартного вывода.

pg_restore dump_file.bin -f -
person AlexDev    schedule 17.12.2019
comment
Спасибо! У меня возникли проблемы с вышеуказанными решениями. - person lmat - Reinstate Monica; 27.01.2020
comment
Другими словами, чтобы сгенерировать файл с необработанным sql pg_restore dump_file.bin -f dump_file.sql Спасибо за это - person equivalent8; 21.05.2021

Файлы дампа обычно представляют собой текстовые файлы, если они не сжаты, и вы можете открыть их в текстовом редакторе. Внутри вы найдете все запросы, которые позволяют реконструировать базу данных ...

person aleroot    schedule 25.04.2013
comment
Эти дампы не являются текстовыми файлами, они двоичны. - person at.; 26.04.2013

Если вы используете pgAdmin в Windows, вы можете просто сделать резервную копию файла в виде обычного текста, есть один вариант, когда вы делаете резервную копию вместо pg_dump в командной строке.

person TonyTony    schedule 30.01.2014