Archives par mot-clé : postgresql

Manipuler le dump d’une base PostgreSQL

Pour toutes les manipumations qui suivent, il faut être connecté en tant qu’utilisateur postgres :

%> su - postgres

Dumper une base

La commande pg_dump permet d’afficher la structure d’une base nom_de_la_base ainsi que ses données sur la sortie standard.

En utilisant une redirection de la sortie standard vers un fichier, on réalise donc une copie de la base.

%> pg_dump -D {nom_de_la_base} > {nom_du_fichier.dump}

Recréer une base à partir d’un dump

S’il y a besoin de restaurer une base, ou d’en construire une nouvelle à partir d’une base existante, il faut utiliser un fichier de dump.

Dans un premier temps, effacer la base existante si besoin :

%> dropdb {nom_de_la_base}

Dans un deuxième temps, recréer ou créer la base :

%> createdb {nom_de_la_base}

Dans un troisième temps, importer dans la base le fichier de dump :

%> psql -e {nom_de_la_base} < {nom_du_fichier.dump}

Pour importer le dump, on peut aussi le faire en étant connecté à la base (utile lorsque le postmaster demande une authentification par mot de passe [1]) en utilisant la commande psql :

nom_de_la_base=# \i {nom_du_fichier.dump}

Ainsi la base est créée et initialisée avec la structure et les données déclarées dans le fichier de dump. Celui-ci étant en mode texte il est trés facile de le modifier avec un éditeur.

PS : Dans tous les cas, pour que cela fonctionne, il faut que le serveur de base de donnés PostgreSQL fonctionne sur la machine. C’est une erreur courante que d’oublier de le démarrer.

[1] car dans ce cas là, on ne peut pas faire la redirection de l’entrée standart