Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 04/09/2019 12:44:14
- null008
- Membre
restauration database en écrasant l'existant
bonjour a tous
débutante en monde postgresql
j'ai sauvegardé a base de donnée a travers pg_dump
pg_dump -d produit -U postgres -Ft -C >C:\BACKUP\Produit.sql
j'aimerai faire la restauration en écrasant l'existant
psql -U postgres -d produit <C:\BACKUP\produit.sql
résultat message d'erreur objet existant
SET
SET
SET
SET
CREATE EXTENSION
COMMENT
CREATE EXTENSION
COMMENT
SET
SET
ERREUR: la relation « tbl_itemtransactions » existe déjÃ
ALTER TABLE
ERREUR: la relation « tbl_itemtransactions_tranid_seq » existe déjÃ
ALTER TABLE
ALTER SEQUENCE
ALTER TABLE
merci pour vos aide
Hors ligne
#2 04/09/2019 13:39:35
- dverite
- Membre
Re : restauration database en écrasant l'existant
C'est l'option -c (c minuscule) ou --clean qu'il faut utiliser pour que les CREATE soient précédés de DROP dans le dump.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
#3 04/09/2019 14:00:22
- null008
- Membre
Re : restauration database en écrasant l'existant
oui ça était bien passer avec l'option --clean
mais au moment de l'opération du drop database j'ai ce message d'erreur
ERREUR: la base de données « produit» est en cours d'utilisation par d'autres utilisateurs
DÉTAIL : 2 autres sessions utilisent la base de données.
alors comment avec l'option --clean je peut peut tuer les utilisateurs connecté sur ma base
merci
Hors ligne
#4 04/09/2019 14:27:03
- dverite
- Membre
Re : restauration database en écrasant l'existant
On peut terminer des sessions avec pg_terminate_backend() qui prend en argument le PID de la session, mais une session ne pourra jamais faire un DROP database en étant elle-même connecté à cette base.
Si le but est de recréer la base entièrement, il est possible d'utiliser pg_dump -C -c (les 2) avec le format plain (donc pas de -Ft, laisser le format par défaut), et de jouer ça dans un psql connecté à une autre base. Par exemple la base nommée postgres. Exemple:
pg_dump -C -c mabase > dump-mabase.sql
psql -U postgres -d postgres -f dump-mabase.sql
Le dump va contenir des commandes du genre
DROP DATABASE mabase;
...
CREATE DATABASE mabase ...;
...
\connect mabase
...
puis les commandes de création des objets.
Mais il faut quand même que personne d'autre ne soit connecté à la base concernée quand on joue ce dump.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Pages : 1