Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa
Archives de la liste
- From: TDE <adresse@cachée>
- To: adresse@cachée
- Subject: [sympa-fr] Erreur lors du upgrade
- Date: Wed, 16 Feb 2011 18:49:11 +0100
Bonjour,
Lors du upgrade, au moment de la mise à jour de la base (" Updating the new robot_subscriber and robot_admin Db fields..."), j'ai une erreur SQL :
DBD::mysql::db do failed: Duplicate entry 'xxx' for key 'PRIMARY' at /mail/sympa_ldif/bin/Upgrade.pm line 237.
err Upgrade::upgrade() Unable to execute SQL statement "UPDATE subscriber_table SET robot_subscriber='xxxx' WHERE (list_subscriber='xxxx')" : Duplicate entry 'xxx'
Cela se produit lorsque l'on a comme entrée :
(1) robot1 => liste1 => user toto
(2) robot2 => liste1 => user toto
or la clé primaire est {robot1,liste1,user} pour la table subscriber_table(2) robot2 => liste1 => user toto
En ligne 237, nous avons :
my $statement = sprintf "UPDATE %s_table SET robot_%s=%s WHERE (list_%s=%s)",
<=>
UPDATE subscriber_table SET robot_subscriber=robot2 WHERE (list_subscriber=liste1)
je ne vois pas trop à quoi ça sert car le champs robot_subscriber est correctement remplis (j'avais supprimé auparavant dans mon dump bdd avant, tous les INSERT INTO sans de robot définis)<=>
UPDATE subscriber_table SET robot_subscriber=robot2 WHERE (list_subscriber=liste1)
mais on vois bien que le update va rentrer en conflit avec l'entrée (2)
J'ai changé le WHERE en rajoutant la condition de faire le UPDATE si robot_subscriber est vide mais je ne sais pas si c'est cela peut provoquer des pb futurs.
Merci de vos retours.
Thibaut de Dompsure
- [sympa-fr] Erreur lors du upgrade, TDE, 16/02/2011
Archives gérées par MHonArc 2.6.19+.