转储PostgreSQL数据库时排除函数定义
发布时间:2020-12-13 15:59:38 所属栏目:百科 来源:网络整理
导读:我有一个PostgreSQL数据库,其中加载了PostGIS功能.我想转储数据库的模式,但是pg_dump -s会将这些函数与表定义一起转储出来. 有没有办法排除函数,只是转储表定义? 解决方法 据我所知, pg_dump 和 pg_dumpall 不支持任何此类限制. 您可以将所有函数移动到可以
我有一个PostgreSQL数据库,其中加载了PostGIS功能.我想转储数据库的模式,但是pg_dump -s会将这些函数与表定义一起转储出来.
有没有办法排除函数,只是转储表定义? 解决方法
据我所知,
pg_dump 和
pg_dumpall 不支持任何此类限制.
您可以将所有函数移动到可以从转储中排除的专用模式,如下所示: pg_dump mydb -N function_schema > mydump.sql 如果你走那条路,你可以像这样migrate functions to another schema: ALTER FUNCTION myfunc() SET SCHEMA function_schema; 在这种情况下,我还会调整postgresql.conf中的search_path(可能还有数据库和角色的默认值) SET search_path = public,function_schema [,more schemas] 作为替代方案,您可以将函数保留在其默认模式中,而不是将该模式用于其他任何模式.将对象放在一个或多个单独的模式中.这应该使升级PostGis更容易. 通常不要将公共模式用于对象.我通常会为PostGis或默认安装到公共场所的其他扩展程序保留它.我喜欢为每个应用程序使用专用模式.使维护更容易 – 包括备份和授予权限. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |