Salut, Le 25/10/2015 13:54, Julien Lesaint a écrit :
Bonjour, Je tente de venir en aide à un utilisateur désirant effectuer une mise à jour depuis une version 0.8.1 vers une 0.8.2.2. La mise à jour de la structure de la table adherents ne se passe pas bien. Après avoir constaté l'échec, via l'interface web, du second "ALTER TABLE", j'ai restauré la sauvegarde de la base faite juste avant l'upgrade, puis relancé manuellement chacune des opérations exécutées par le script install/scripts/upgrade-to-0.82-mysql.sql. Le résultat est le suivant: mysql> SET FOREIGN_KEY_CHECKS=0; Query OK, 0 rows affected (0.00 sec) mysql> ALTER TABLE abon_adherents ADD parent_id int(10) unsigned DEFAULT NULL; Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE abon_adherents ADD FOREIGN KEY (parent_id) REFERENCES abon_adherents (id_adh) ON DELETE RESTRICT ON UPDATE RESTRICT; ERROR 1822 (HY000): Failed to add the foreign key constaint. Missing index for constraint '' in the referenced table 'abon_adherents' Je n'ai pas suffisamment de connaissances MySQL pour corriger le problème, sauriez-vous nous expliquer ce qui ne va pas ? Le serveur MySQL est en version 5.6.25, PHP en 5.6.14.
Je pense qu'il s'agit ici d'un problème de configuration du MySQL ; mais je ne vois pas pourquoi ça foire. Il faudrait essayer de faire un backup de cette table, d'en vider les données, d'appliquer le ALTER, puis de remonter les données (bien que je crains que ça ne fonctionne pas forcément mieux). ++ -- Johan
Attachment:
signature.asc
Description: OpenPGP digital signature