Re: surprenant résultat : rollback sur update ap rès pg_dump
Stéphane Dunand <[email protected]> Mon, 2 Sep 2019 15:52:44 +0200
| Newsgroups | gmane.comp.db.postgresql.french |
|---|---|
| Message-ID | <[email protected]> |
Le 29/08/2019 à 09:36, Cloc a écrit : > Bonjour. > > En vue d'un travail spécifique de développement, j'ai besoin de la copie > d'une base interne. J'ai voulu déplacer, upgrader et adapter cette base > via un script bash, sur CentOS. > > Initialement, la base est en version 9.3. Je la migre sur un serveur > CentOS 7, en version 11. Pas de configuration particulière. > Un fichier pgpass est créé au début du script. > > Voici le script utilisé (tronqué et avec des noms modifiés) > > # pg_dump -h $PRODUCTION -U $USER_INITIAL --clean --create $MABASE > > dump.sql > # su - $PROPRIO_ACTUEL -c 'psql ' < dump.sql > # REQUETE_PURGE="update tableune set nom = '', groupes = null where > id_externe = any (select distinct id from contrat where ladate < > '2019-01-01'::date);" > # echo $REQUETE_PURGE | psql -h 127.0.0.1 -U $PROPRIO_ACTUEL -w -d $MABASE > UPDATE 125834 > > Puis dans la foulée, au sein du script, je vérifie et affiche le > résultat d'un select. Il est cohérent (le résultat est égal à 0 si > l'update est effectué) : > # echo "select count (id) from tableune where id_externe = 25;" | psql > -h 127.0.0.1 -U bddopserv -w -d archivage peut-être ici : -d $MABASE > Le script laisse tomber PostgreSQL et effectue différentes manipulations > sur des fichiers puis quitte tranquillement. Le nouveau serveur de dév > est redémarré. > > Tout semble bien s'être passé. Pourtant, dès le premier essai d'usage, > je me rend compte que les requêtes de nettoyage ne semblent pas avoir > été exécutées, comme s'il y avait eu un rollback. Une fois exécutées > manuellement, tout rentre dans l'ordre. > > Qu'ai je omis de prendre en compte ? > > Claude Stéphane D.