Re: surprenant résultat : rollback sur update après pg_dump

From: Tumasgiu Rossini <rossini(dot)t(at)gmail(dot)com>
To: Nicky Larson <said(dot)assemlal(at)gmail(dot)com>
Cc: s(dot)dunand(at)sirap(dot)fr, pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Subject: Re: surprenant résultat : rollback sur update après pg_dump
Date: 2019-09-13 07:51:51
Message-ID: CAJD9AWwfWq8ZaeO4+BHXmF2E14P89-vMugg=46Md3eVeJNYA_w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Le jeu. 12 sept. 2019 à 17:13, Nicky Larson <said(dot)assemlal(at)gmail(dot)com> a
écrit :

> La commande suivante me parait bizarre car le nom de la base n'y est pas
> specifiée:
>
>
su - $PROPRIO_ACTUEL -c 'psql ' < dump.sql
>
>
Le dump est créé avec l'option --create, il contient donc les commandes de
création de la base, utiliser psql sans spécifier la base
est valide, cf. https://www.postgresql.org/docs/current/app-pgdump.html

> On Mon, Sep 2, 2019 at 9:52 AM Stéphane Dunand <s(dot)dunand(at)sirap(dot)fr> wrote:
>
>> 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.
>>
>>
>>

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message CRUMEYROLLE Pierre 2019-09-23 09:25:31 insert multi values limitations
Previous Message Cloc 2019-09-12 16:06:24 Re: surprenant résultat : rollback sur update après pg_dump