2013-08-07 6 views
3

У меня есть файл * .dump (postgresql dump), и я хотел бы выводить my_table в my_table.csv. Есть ли лучший способ сделать это, чем pg_restore -t my_table db.dump > my_table.txt, а затем написать скрипт для создания CSV с выхода?Как извлечь таблицу из файла * .dump в CSV

+0

Для меня лучшим способом было бы восстановить таблицу в базе данных, а затем «КОПИРОВАТЬ» таблицу в CSV. –

+0

Не могли бы вы предоставить шаги для этого? –

ответ

4

Выходной сигнал от pg_restore --data-only -t my_table db.dump в основном составляет с разделителем без заголовка с таблицами с некоторыми комментариями и несколькими дополнительными командами. Сценарий, чтобы калечить его в csv с помощью инструмента, такого как perl или awk, будет довольно простым.

Это говорит, лично я бы:

  • Восстановить таблицу временной базы данных, созданной для этой цели. Если таблица зависит от пользовательских типов, функций, последовательностей и т. Д., Вам также нужно будет их восстановить.

  • psql В, \copy the_table TO 'some_file.csv' WITH (FORMAT CSV, HEADER ON)

Таким образом, вы можете control the representation of nulls and lots more.