Jim Mitchener
Jim Mitchener

Reputation: 9003

Drop all functions from Postgres database

I have a database with an old broken version of PostGIS installed in it. I would like to easily drop all functions in the database (they're all from PostGIS). Is there a simple way to do this? Even simply extracting a list of function names would be acceptable as I could just make a large DROP FUNCTION statement.

Upvotes: 24

Views: 18973

Answers (2)

Mike T
Mike T

Reputation: 43752

Just as there was a postgis.sql enabler install script, there is also an uninstall_postgis.sql uninstall script.

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

Warning: Be prepared to see your geometry/geography columns and data disappear!

Upvotes: 3

ChristopheD
ChristopheD

Reputation: 116325

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;

Upvotes: 39

Related Questions