Projet

Général

Profil

Actions

Anomalie #668

fermé

Impossible de détruire la fiche d'un membre géolocalisé (foreign key)

Ajouté par Roland Telle il y a plus de 11 ans. Mis à jour il y a presque 8 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Début:
26/07/2013
Echéance:
% réalisé:

100%

Temps estimé:

Description

Cannot delete or update a parent row: a foreign key constraint fails (`C01698_membres`.`galette_maps_coordinates`, CONSTRAINT `galette_maps_coordinates_ibfk_1` FOREIGN KEY (`id_adh`) REFERENCES `galette_adherents` (`id_adh`))

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • Version utilisée changé de 0.7.5 à 0.7.4
  • Sujet changé de Galette v0.7.5dev. Impossible de détruire la fiche d'un membre géolocalisé (foreign key) à Impossible de détruire la fiche d'un membre géolocalisé (foreign key)

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

  • Projet changé de Galette à Maps

Mis à jour par Mathieu . il y a environ 8 ans

Je viens de faire un essai et j'arrive bien à supprimer un adhérent géolocalisé.
Donc le problème a peut-être été résolu ?

Mis à jour par Johan Cwiklinski il y a environ 8 ans

Il ne me semble pas avoir corrigé ce souci ; mais ce serait une bonne novuelle que ce soit corrigé ;)

Mis à jour par Roland Telle il y a environ 8 ans

Test effectué avec Galette8.2.3dev + Maps v1.2.1
Le temps n'y a rien changé ;-)

::1 - 2016-09-26 22:45:12 - 3 - Query error: DELETE FROM `galette_adherents` WHERE `id_adh` IN ('3') exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`galette823`.`galette_maps_coordinates`, CONSTRAINT `galette_maps_coordinates_ibfk_1` FOREIGN KEY (`id_adh`) REFERENCES `galette_adherents` (`id_adh`))' in C:\xampp\htdocs\galette823\includes\Zend-2.3.7\Zend\Db\Adapter\Driver\Pdo\Connection.php:438
Stack trace:
#0 C:\xampp\htdocs\galette823\includes\Zend-2.3.7\Zend\Db\Adapter\Driver\Pdo\Connection.php(438): PDO->query('DELETE FROM `ga...')
#1 C:\xampp\htdocs\galette823\includes\Zend-2.3.7\Zend\Db\Adapter\Adapter.php(190): Zend\Db\Adapter\Driver\Pdo\Connection->execute('DELETE FROM `ga...')
#2 C:\xampp\htdocs\galette823\lib\Galette\Core\Db.php(731): Zend\Db\Adapter\Adapter->query('DELETE FROM `ga...', 'execute')
#3 C:\xampp\htdocs\galette823\lib\Galette\Repository\Members.php(341): Galette\Core\Db->execute(Object(Zend\Db\Sql\Delete))
#4 C:\xampp\htdocs\galette823\gestion_adherents.php(245): Galette\Repository\Members->removeMembers('3')
#5 {main}
::1 - 2016-09-26 22:45:12 - 3 - Unable to delete selected member(s) |SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`galette823`.`galette_maps_coordinates`, CONSTRAINT `galette_maps_coordinates_ibfk_1` FOREIGN KEY (`id_adh`) REFERENCES `galette_adherents` (`id_adh`))
::1 - 2016-09-26 22:45:12 - 4 - SORTED:Array

Mis à jour par Johan Cwiklinski il y a presque 8 ans

Je ne parviens pas à me décider... Soit on ne peut supprimer l'adhérent s'il est géolocalisé (pourquoi pas - c'est daillerus le comportement voulu à l'origine), mais du coup, il faudrait que le message d'erreur soit plus clair ; ce qui n'est pas évident (la suppression se fait côté galette, le plugin n'a normalement rien à voir là dedans).

L'alternative, c'est de supprimer les données en cascade (comm on vire les contributions lors de la supprssion d'un adhérent) ; ça implique une mise à jour du plugin et une modification de son schéma.

Des avis ?

Mis à jour par Johan Cwiklinski il y a presque 8 ans

Proposition de correctif (ne pas oublier de mettre à jour la base de données !) :
https://github.com/galette/plugin-maps/archive/hotfix/1.2.3.tar.gz

Mis à jour par Roland Telle il y a presque 8 ans

Test effectué comme suit :

  1. installation en local d'une galette v0.8.3.3 toute fraîche avec le plugin Maps v1.2.2
  2. création et géolocalisation d'un membre
  3. destruction de la fiche dudit membre sans succès
  4. installation par écrasement du plugin Maps v1.2.3 (contenant le correctif) et mise à jour des tables
  5. destruction de la fiche dudit membre : la fiche disparaît ainsi que la contribution et les coordonnées dans la table galette_maps_coordinates

Roland, sous le soleil de Gran Canarias ;-)

Mis à jour par Johan Cwiklinski il y a presque 8 ans

  • Assigné à mis à Johan Cwiklinski

Super, merci Roland :) Je vais sortir une version corrective ce week-end.

Mis à jour par Johan Cwiklinski il y a presque 8 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a presque 8 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF