Exclude function definitions when dumping a PostgreSQL database

别等时光非礼了梦想. 提交于 2019-11-30 17:29:36

问题


I have a PostgreSQL database with PostGIS functions loaded into it. I would like to dump out the schema of the database, but pg_dump -s dumps out the functions along with the table definitions.

Is there a way to exclude the functions and just dump the table definitions?


回答1:


For all I know, pg_dump and pg_dumpall do not support any such restriction.

You could move all your functions to a dedicated schema which you could exclude from the dump like this:

pg_dump mydb -N function_schema > mydump.sql

If you go that route, you can migrate functions to another schema like this:

ALTER FUNCTION myfunc() SET SCHEMA function_schema;

In this case I would also adapt the search_path in postgresql.conf (and possibly in the defaults for databases and roles)

SET search_path = public,function_schema [,more schemas]

As an alternative, you could leave the functions in their default schema public and not use that schema for anything else. Put your objects in one or more separate schemas. That should make upgrading PostGis easier.

It may be a good idea to not use the public schema for your objects. I usually reserve it for PostGis or other extensions that install into public by default. I like to use a dedicated schema for every application. Makes maintenance easier - including backups and granting permissions.



来源:https://stackoverflow.com/questions/9627095/exclude-function-definitions-when-dumping-a-postgresql-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!