删除Postgres数据库中的所有功能

时间:2012-05-14 21:10:05

标签: postgresql postgis

我有一个数据库,其中安装了旧版的PostGIS。我想轻松删除数据库中的所有功能(它们全部来自PostGIS)。有一个简单的方法吗?即使简单地提取函数名列表也是可以接受的,因为我可以制作一个大的DROP FUNCTION语句。

2 个答案:

答案 0 :(得分:33)

A fine answer to this question can be found here

SELECT 'DROP FUNCTION ' || ns.nspname || '.' || proname 
       || '(' || oidvectortypes(proargtypes) || ');'
FROM pg_proc INNER JOIN pg_namespace ns ON (pg_proc.pronamespace = ns.oid)
WHERE ns.nspname = 'my_messed_up_schema'  order by proname;

答案 1 :(得分:3)

就像有postgis.sql enabler install script一样,还有一个uninstall_postgis.sql卸载脚本。

psql -d [yourdatabase] -f /path/to/uninstall_postgis.sql

警告:准备好看你的几何/地理专栏和数据消失了!