Я использовал pg_dump --no-privileges --format custom --compress=0 some_database > my-dump.pgdump
для выгрузки базы данных, но у меня возникают проблемы при попытке восстановить ее.
В частности, это похоже на загрузку определений функций перед определениями таблиц:
$ pg_restore ./my-dump.pgdump
…
create function my_function() returns …
language sql $$
select …
from some_table
where …
$$;
… later in the dump …
create table some_table ( … );
…
Что вызывает ошибку при попытке восстановить дамп:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 4863; 0 16735 TABLE DATA some_table some_database
pg_restore: [archiver (db)] COPY failed for table "some_table": ERROR: relation "some_table" does not exist
LINE 3: from some_table
^
QUERY:
select …
from some_table
where …
CONTEXT: SQL function "my_function" during inlining
Что здесь происходит?Как я могу обмануть pg_dump
/ pg_restore
, чтобы делать вещи в правильном порядке?