Comment prendre de sauvegarde de fonctions que dans Postgres
Je veux prendre de sauvegarde de toutes les fonctions dans ma base de données postgres.Comment prendre de sauvegarde de fonctions que dans Postgres?
Vous devez vous connecter pour publier un commentaire.
utilisation
pg_getfunctiondef
; voir système d'information des fonctions.pg_getfunctiondef
a été ajouté dans PostgreSQL 8.4.Pour vider toutes les fonctions dans un schéma, vous pouvez interroger les tables système dans
pg_catalog
; dire si vous voulais tout depublic
:il est trivial de changer la dessus pour dire "de tous les schémas à l'exception de ceux qui commencent par
pg_
" à la place si c'est ce que vous voulez.Dans
psql
vous pouvez vider ce dans un fichier avec:Pour exécuter la sortie dans une autre base de données, utilisez quelque chose comme:
Si vous êtes à la réplication des fonctions entre DBs comme ceci, cependant, pensez à stocker le faisant autorité copie de la définition d'une fonction en tant que script SQL dans un système de gestion de versions comme svn ou git, de préférence emballé comme une extension PostgreSQL. Voir l'emballage des extensions.
pg_get_functiondef('proc_name'::regproc)
NE PAS dump de la fonction de privilèges (GRANT
etREVOKE
états) qui peuvent être parfois considérés comme faisant partie de la définition de la fonction.ORDER BY pg_get_functiondef(f.oid)
Merci!Vous ne pouvez pas dire
pg_dump
de décharge de fonctions. Cependant, vous pouvez faire un dump sans données (-s
) et le filtre sur la restauration. Remarque le-Fc
partie: cela va produire un fichier adapté pourpg_restore
.D'abord prendre le dump:
Puis créer une liste de fonctions:
Et enfin la restauration de l'état
-L
spécifie le fichier contenant la liste ci-dessus):