Bonjour,

Dans une version 0.8 de galette j’avais ajouté un champ dynamique de type bool 
appelé « Renonciation » .
Ce champ étant devenu inutile, je veux le supprimer de la base.
Or, quand je clique sur « Supprimer » j’ai un message d’erreur.

Aujourd’hui je me suis dit « Tiens je n’ai qu’à aller l’éditer directement dans 
la base ». Mauvaise idée ?

Dans phpmyadmin , lorsque je cherche à supprimer le champ dans 
galette_fields_types (ce champ dynamique correspond à field_id = 1) , j’obtiens 
une erreur de FOREIGN KEY constraint (« galette_dynamic_fields_ibfk»).

Ayant trouvé la contrainte en question dans la table galette_dynamic_fields, 
j’ai (bêtement?) supprimé toutes les entrées où field_id = 1 et field_form = 
adh .

Comme la suppression de l’entrée dans galette_field_types générait toujours 
l’erreur nommant la contrainte… 
j’ai supprimé la contrainte galette_dynamic_fields_ibfk de la table 
galette_dynamic_fields , en pensant faire : 1) enlever la contrainte 2) 
supprimer le champ récalcitrant 3) remettre la contrainte 

Etat des lieux : le champ dynamique a bien disparu .

En revanche si j’essaie de remettre la contrainte en place via phpMyadmin , ça 
ne marche pas :
Requête SQL :
ALTER TABLE `galette_dynamic_fields` ADD  CONSTRAINT 
`galette_dynamic_fields_ibfk_1` FOREIGN KEY (`field_id`) REFERENCES 
`galette_field_types`(`field_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
MySQL a répondu : Documentation
#1452 - Cannot add or update a child row: a foreign key constraint fails 
(`echosolutions`.`#sql-4dd5_10040496`, CONSTRAINT 
`galette_dynamic_fields_ibfk_1` FOREIGN KEY (`field_id`) REFERENCES 
`galette_field_types` (`field_id`))

Alors, est-ce que j’ai totalement foiré la base de données de galette, ou alors 
y a-t-il moyen de remettre les choses en ordre ? :-/

Merci d’avance pour votre aide :-)
Cordialement,
Thierry

Répondre à