Исключить определения функций при выгрузке базы данных PostgreSQL - PullRequest
4 голосов
/ 09 марта 2012

У меня есть база данных PostgreSQL с загруженными в нее функциями PostGIS.Я хотел бы вывести схему базы данных, но pg_dump -s выводит функции вместе с определениями таблиц.

Есть ли способ исключить функции и просто сбросить определения таблиц?

1 Ответ

6 голосов
/ 09 марта 2012

Насколько я знаю, pg_dump и pg_dumpall не поддерживают такие ограничения.

Вы могли бы переместить всеваши функции в выделенной схеме, которую вы можете исключить из дампа следующим образом:

pg_dump mydb -N function_schema > mydump.sql

Если вы пойдете по этому пути, вы можете перенести функции в другую схему , например так:

ALTER FUNCTION myfunc() SET SCHEMA function_schema;

В этом случае я бы также адаптировал search_path в postgresql.conf (и, возможно, в значениях по умолчанию для баз данных и ролей)

SET search_path = public,function_schema [,more schemas]

в качестве альтернативы Вы можете оставить функции в их схеме по умолчанию public и не использовать эту схему ни для чего другого.Поместите ваши объекты в одну или несколько отдельных схем.Это должно облегчить обновление PostGis.

Как правило, не - это хорошая схема public для ваших объектов.Я обычно резервирую его для PostGis или других расширений, которые по умолчанию устанавливаются в public.Мне нравится использовать выделенную схему для каждого приложения.Облегчает обслуживание, включая резервное копирование и предоставление разрешений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...