Восстановить только данные в дампе postesql? - PullRequest
0 голосов
/ 25 июня 2018

У меня есть вопрос postgresql.

Я немного новичок в postgresql, поэтому, пожалуйста, потерпите меня.

Я работаю над восстановлением предоставленного postgres data-only-dump в текстовом формате.Pg_dump был создан со следующим синтаксисом:

$> pg_dump -a -h*** -U *** -T *** -T**** -T*** > outfile.sql

Есть ли способ загрузить его в совершенно новую базу данных, не зная структуру / схему базы данных?

Из того, что мне объяснили, был нужен только дамп данных, чтобы сохранить конфиденциальность нашей db-схемы.Дамп данных был запрошен у одного из наших клиентов, и им необходимо извлечь данные из указанного pg_dump.

Спасибо.

1 Ответ

0 голосов
/ 25 июня 2018

здесь проще всего выглядит макетирование структуры без строгих типов данных.Вы можете попробовать привести оператор COPY к CREATE TABLE, например:

MacBook-Air:~ vao$ pg_dump -d db -t person -a | grep COPY
COPY person (login_name, display_name, abstract, ts_abstract) FROM stdin;

, чтобы добавить пару seds:

MacBook-Air:~ vao$ pg_dump -d db -t person -a | grep COPY | sed 's#COPY#CREATE TABLE#g' | sed 's#,# text,#g' | sed 's#)# text)#g' | sed 's# FROM stdin##g'
CREATE TABLE person (login_name text, display_name text, abstract text, ts_abstract text);

Далее вы можете использовать свой дамп как есть, а затемпопробуй угадать загадочную конфиденциальную db-схему ...

...