Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je sais que la question peut paraître complètement bête mais je n'arrive pas à trouver où est-ce qu'il faut taper les commandes psql pour importer une base de données par exemple.
Avant sous postgres 8.2 je les tapais dans "Invite de commande" mais avec la version 9.1 je ne sais pas ou les taper. L'outil psql(shell) me connecte directement aux bases de données.
Comment faire s'il vous plais ?
Merci
Hors ligne
Bonjour,
je ne comprend pas très bien votre question. Si vous voulez effectuer des requêtes, il faut être connecté à psql. Pour les sauvegardes/restauration, il faut utiliser les outils fournis (pg_dump,pg_dumpall,pg_restore).
Si vous voulez utiliser un script avec psql, vous pouvez faire psql -c "commandes" ou psql -f fichier.sql
Julien.
https://rjuju.github.io/
Hors ligne
En fait je ne veux pas taper des requête SQL mais pouvoir taper des commandes du type psql base < dump.sql
Où se trouvent les outils pg_dump, pg_dumpall, pg_restore ??
Hors ligne
Je suppose que vous êtes sous windows. Tous les binaire de postgresql (psql,pg_dump ...) se trouvent dans le répertoire d'installation, sous répertoire bin.
Par défaut, cela devrait être c:\Program Files\Postgres\9.1\bin\*.exe
Il vous faut rajouter le chemin vers les binaires dans le path pour pouvoir appeler ces binaires en ligne de commande sans spécifier le chemin absolu.
Julien.
https://rjuju.github.io/
Hors ligne
Ca y est, je viens de réussir à taper la commande, seulement maintenant il me renvoie l'erreur suivante :
pg_restore archiver unsupported version (1.12) in file header
Je pense qu'il s'agit d'un problème de compatibilité entre la version d'où est issu le dump (8.2) et la version dans laquelle je souhaite l'importer (9.1).
Que faut-il que je fasse pour pouvoir importer ma base ?
Hors ligne
Pour faire une migration d'une version majeure à une autre, il faut toujours faire le dump avec l'exécutable de la nouvelle version. Il faudrait donc utiliser pg_dump de la version 9.1 pour sauvegarder vos instances. Pensez également à sauvegarder les objets globaux (roles, tablespaces ...). Pour cela, vous pouvez faire un pg_dumpall -g pour ne sauvegarder que les objets globaux, ce qui créera un fichier au format sql. Vous pourrez ensuite restaurer la ou les bases de données issues de pg_dump. Vous pouvez aussi utiliser pg_dumpall pour sauvegarder les globaux ainsi que toutes les bases.
Julien.
https://rjuju.github.io/
Hors ligne
Le problème ici est que la base de données que je veux importer se trouve au départ sur un serveur sur lequel je ne peux pas installer quoique ce soit, donc pas la nouvelle version de PostgreSQL. La version 8.2 y est actuellement installée et je ne peux donc pas faire un pg_dumpall avec la 9.1... Il n'y a pas un moyen pour que je puisse faire cette restauration sans avoir à passer par des outils d'une version supérieur ??
Hors ligne
Si vous avez un accès internet au serveur, vous pouvez le sauvegarder à distance:
c:\program files\postgres\9.1\bin\pg_dump.exe -h ip.serveur -p 5432 labase > c:\labase.dump
Si cela n'est pas possible, vous pouvez essayer avec un dump en format sql et non en format custom.
Si cela ne marche pas, il ne vous reste qu'à restaurer cette sauvegarde sur un serveur en version 8.2 en local pour la resauvegarder avec un pg_dump en 9.1.
Julien.
https://rjuju.github.io/
Hors ligne
Oui mais encore faut-il pouvoir trouver la version 8.2 quelque part ...
Sur ma machine perso (sur laquelle je pourrais donc l'installer), je suis sous Ubuntu et je ne trouve pas le paquet pour postgres 8.2...
Hors ligne
Vous pouvez télécharger le code source (http://ftp.postgresql.org/pub/source/v8 … .23.tar.gz), le compiler et l'utiliser. Ce n'est pas très long. Pour choisir le répertoire d'installation des binaires, faîtes ./configure --prefix /chemin/vers/binaire
Julien.
https://rjuju.github.io/
Hors ligne
Je viens de lancer tout ça mais j'ai l'erreur suivante qui s'affiche :
configure: error: readline library not found
If you have readline already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory.
Use --whithout-readline to disable readline support.
Hors ligne
J'ai rajouter l'option --whithout-readline et ça a l'air d'avoir fonctionner. En tout cas je n'ai pas eu d'erreur. Par contre, faut-il que je désinstalle la version 9.1 que j'avais installer sur cette machine ?
Hors ligne
Non, il suffit de choisir un répertoire spécifique pour cette base, de lancer initdb -D /repertoire/data/8.2 en tant que postgres,
puis d'éditer le postgresql.conf créé pour y mettre un port autre que celui utilisé par votre 9.1 (5432 par défaut), et faire pg_ctl -D /repertoire/data/8.2 start
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1