|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() |
Bonjour à tous.
Je me trouve face à un problème qui après pas mal de recherche n'a pas trouvé de solution. J'espère que certains d'entre vous pourront m'éclairer Je vais organiser mon poste en 3 partie : ce que je veux faire, ce que j’exécute, ce qui pose problème. Tout d'abord ce que je veux faire :
Jusque là rien de bien sorcier. Ensuite ce que je fais :
Code Source de creation de la base Code :
Code :
Dans ce but je suis ouvert à toute vos propositions. Merci d'avance de votre aide. |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
La raison à ça est qu'à partir de la version 9 de postgres, le langage plpgsql est inclus implicitement dans le CREATE DATABASE, alors qu'avant il était optionnel
A part ignorer l'erreur qui n'a pas d'importance, il y a bien au moins 2 solutions pour qu'elle ne se produise pas: 1) Utiliser le pg_dump de la version cible, pour dumper la base source. En fait cette méthode est préconisée systématiquement pour passer à une version plus récente, et on voit pourquoi sur cet exemple: le nouveau pg_dump est toujours plus adapté que l'ancien à supporter les nouveautés. 2) Si pas possible, se connecter sur la base nouvellement créée avant le pg_restore et exécuter un DROP LANGUAGE plpgsql; |
|
|
10
|
|
|
#3 |
|
Nouveau Membre du Club
![]() |
J'ai trouvé une autre solution, merci à Tom Lane* de la mailing PGSQL.
En fait chaque base de donnée est créée à partir d'un "modèle" de base de données qui est copié pour créer la nouvelle. Le modèle par défaut est template1 qui contient le langage plpgsql. la solution serait donc d'indiquer dans le script de création de base. Merci également estofilo, j'avais en effet envisagé ta deuxième méthode. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com