PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Exclure les définitions de fonction lors du vidage d'une base de données PostgreSQL

Pour autant que je sache, pg_dump et pg_dumpall ne prennent pas en charge une telle restriction.

Vous pourriez déplacez toutes vos fonctions vers un schéma dédié que vous pourriez exclure du dump comme ceci :

pg_dump mydb -N function_schema > mydump.sql

Si vous suivez cette voie, vous pouvez migrer les fonctions vers un autre schéma comme ceci :

ALTER FUNCTION myfunc() SET SCHEMA function_schema;

Dans ce cas, j'adapterais également le search_path dans postgresql.conf (et éventuellement dans les valeurs par défaut pour les bases de données et les rôles)

SET search_path = public,function_schema [,more schemas]

Comme alternative , vous pouvez laisser les fonctions dans leur schéma par défaut public et ne pas utiliser ce schéma pour autre chose. Placez vos objets dans un ou plusieurs schémas distincts. Cela devrait faciliter la mise à jour de PostGis.

Ce peut être une bonne idée de ne pas utiliser le public schéma pour vos objets. Je le réserve généralement pour PostGis ou d'autres extensions qui s'installent dans public par défaut. J'aime utiliser un schéma dédié pour chaque application. Facilite la maintenance, y compris les sauvegardes et l'octroi d'autorisations.