PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Schließen Sie Funktionsdefinitionen beim Sichern einer PostgreSQL-Datenbank aus

Soweit ich weiß, pg_dump und pg_dumpall unterstützen solche Beschränkungen nicht.

Sie könnten Verschieben Sie alle Ihre Funktionen in ein dediziertes Schema, das Sie wie folgt aus dem Dump ausschließen können:

pg_dump mydb -N function_schema > mydump.sql

Wenn Sie diesen Weg gehen, können Sie Funktionen in ein anderes Schema migrieren so:

ALTER FUNCTION myfunc() SET SCHEMA function_schema;

In diesem Fall würde ich auch den search_path anpassen in postgresql.conf (und möglicherweise in den Standardeinstellungen für Datenbanken und Rollen)

SET search_path = public,function_schema [,more schemas]

Als Alternative , könnten Sie die Funktionen in ihrem Standardschema public belassen und dieses Schema nicht für etwas anderes verwenden. Platzieren Sie Ihre Objekte in einem oder mehreren separaten Schemas. Das sollte das Upgraden von PostGis einfacher machen.

Es kann eine gute Idee sein, dies nicht zu tun Verwenden Sie den public Schema für Ihre Objekte. Normalerweise reserviere ich es für PostGis oder andere Erweiterungen, die in public installiert werden standardmäßig. Ich verwende gerne ein dediziertes Schema für jede Anwendung. Vereinfacht die Wartung – einschließlich Backups und Gewährung von Berechtigungen.