Восстановить дамп только после данных?

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

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

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

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

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

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

Спасибо.

1 ответ

Самая простая здесь выглядит макет структуры без строгих типов данных. Вы можете попробовать кастинг 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-схему...

Другие вопросы по тегам