web-dev-qa-db-ja.com

Postgresデータベースからすべての関数を削除します

PostGISの古い壊れたバージョンがインストールされたデータベースがあります。データベース内のすべての関数を簡単に削除したいと思います(それらはすべてPostGISからのものです)。これを行う簡単な方法はありますか?大きなDROP FUNCTIONステートメントを作成できるので、関数名のリストを単純に抽出するだけでもかまいません。

22
Jim Mitchener

A この質問に対する細かい答えはここにあります

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;
33
ChristopheD

postgis.sqlイネーブラーインストールスクリプト があったのと同じように、uninstall_postgis.sqlアンインストールスクリプトもあります。

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

警告:ジオメトリ/地理列とデータが消えるのを確認する準備をしてください!

3
Mike T