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