2016-12-14 10 views
0

Добрый день,Postgres pg_dump вопрос

Я пытался восстановить файл дампа с помощью клиента Psql, и я получаю эту ошибку:

psql.bin:/home/user/Desktop/dump/dumpfile.sql:907: 
ERROR: more than one function named "pg_catalog.avg" 
CONTEXT: COPY pg_aggregate, line 1, column aggfnoid: "pg_catalog.avg" 

Я создал файл дампа от другой Postgres БД (версия: 9.4.5) с помощью команды:

pg_dump --username=pgroot ${tables} --no-owner --no-acl --no-security 
--no-tablespaces --no-unlogged-table-data --data-only dbname > dumpfile.sql 

Где $ {таблицы} является переменной в течение:

-T table1 -T table2 -T table3 ... 

Это потому, что я сбрасываю конкретные таблицы, перечисленные в файле с разделителями новой строки. Следовательно, это не вся база данных, а конкретные таблицы, которые я хочу сбросить.

Я попытался загрузки файла дампа Int другой Postgres DB (9.6) с помощью следующей команды:

psql -d dbname -U superuser -v "ON_ERROR_STOP=1" -f 
${DUMP_DIR}dumpfile.sql -1 -a > ${LOG_ERR_DIR}dumpfile.log 
2>${LOG_ERR_DIR}dumpfile.err 

Это дало ошибку упомянутую выше. Похоже, эта ошибка возникает из-за того, что файл дампа пытается добавить в базу данных функцию «pg_catalog.avg», и она дает ошибку, потому что она уже существует.

Файл sql, сгенерированный pg_dump, не имеет нигде в нем, где он создает функцию pg_catalog.avg, поэтому я не знаю, почему это происходит.

Поэтому я попытался удалить базу данных и создать ее из шаблона0, и все же я получил ошибку. Мне кажется, что его ошибка, основанная на follwoing пост в:

Re: BUG #6176: pg_dump dumps pg_catalog tables

Я застрял, пытаясь reslove этот вопрос. Если кто-нибудь может помочь мне решить эту проблему, ответьте?

Спасибо заранее, j3rg

ответ

0

я узнал, что вызывает эту проблему. Кажется, что в файле, содержащем список таблиц, была добавлена ​​новая строка. Это вызвало дополнительный аргумент таблицы без указанной таблицы и, в свою очередь, pg_dump экспортировал таблицы sys в файл. Я файл, я искал, что функция avg была неправильным файлом.