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.