sql >> Database >  >> RDS >> PostgreSQL

Functiedefinities uitsluiten bij het dumpen van een PostgreSQL-database

Voor zover ik weet, pg_dump en pg_dumpall ondersteunen dergelijke beperkingen niet.

Je zou verplaats al je functies naar een speciaal schema dat je als volgt van de dump zou kunnen uitsluiten:

pg_dump mydb -N function_schema > mydump.sql

Als je die route volgt, kun je functies migreren naar een ander schema zoals dit:

ALTER FUNCTION myfunc() SET SCHEMA function_schema;

In dit geval zou ik ook het search_path . aanpassen in postgresql.conf (en mogelijk in de standaardinstellingen voor databases en rollen)

SET search_path = public,function_schema [,more schemas]

Als een alternatief , kunt u de functies in hun standaardschema laten staan ​​public en gebruik dat schema niet voor iets anders. Zet uw objecten in een of meer afzonderlijke schema's. Dat zou het upgraden van PostGis eenvoudiger moeten maken.

Het kan een goed idee zijn om niet gebruik de public schema voor uw objecten. Ik reserveer het meestal voor PostGis of andere extensies die installeren in public standaard. Ik gebruik graag een speciaal schema voor elke toepassing. Maakt onderhoud eenvoudiger - inclusief back-ups en het verlenen van machtigingen.




  1. Compileerfout:verwachte functie of variabele in VBA voor toegang

  2. Een entiteit-relatiediagram (ER) genereren met Oracle SQL Developer

  3. Een database dupliceren met phpMyAdmin

  4. De primaire sleutel van MySQL wijzigen wanneer er beperkingen zijn voor externe sleutels