J'ai PostgreSQL 8.4 et 9.0 fonctionnant sur le même serveur (Ubuntu Lucid).
Je les ai installés tous les deux via apt-get (8.4 avec les sources de paquets par défaut, et 9.0 après avoir ajouté le ppa depuis https://launchpad.net/~pitti/+archive/postgresql ).
Lorsque j'exécute une commande comme "createdb" à partir de la ligne de commande ou démarre le shell "psql", PostgreSQL version 8.4 est utilisé par défaut sur mon système.
Alors, comment puis-je forcer ces commandes à utiliser PostgreSQL 9.0 au lieu de 8.4?
ubuntu
postgresql
Moulin à café
la source
la source
Réponses:
En supposant qu'Ubuntu fait la même chose que Debian, vos deux instances PostGreSQL s'exécuteront sur des ports différents.
Vous pouvez facilement vérifier les fichiers de configuration pour voir quelle version se trouve sur quel port:
La plupart des commandes PostGreSQL prennent l'option "-p ####" ou "--port = ####", vous pouvez donc l'utiliser pour sélectionner la version souhaitée.
la source
Utilisez l'
--cluster
option par exemple (en supposant que les deux clusters sont nommés comme principaux par défaut):Les schémas génériques sont:
Pour répertorier tous les clusters installés (nom, port, état, répertoire de données, etc.), utilisez la
pg_lsclusters
commande.Vérifiez
man pg_wrapper
pour plus d'informations.la source
pg_wrapper
c'est l'extension de Debian. Essentiellement, il encapsulepsql
(c'est-à-direpsql
est un lien symbolique vers lepg_wrapper
script) la commande avec plusieurs nouvelles options pour faciliter la gestion de plusieurs clusters.Vous pouvez utiliser
dpkg -L <packagename>
pour voir quels fichiers un package particulier possède. Exécutez-le avec le package postgresql 9 et voyez où la commande createdb pour cette version a été stockée.La plupart des commandes postgresql fonctionneraient entre les versions avec une sélection appropriée de la base de données par port ou chemin, mais cela ne s'applique bien sûr pas aux scripts de démarrage et aux commandes de création.
la source