Erreur lors de php bin/console doctrine:migrations:migrate

Fermé
Diego987 Messages postés 64 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 9 janvier 2024 - 7 août 2021 à 10:08
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 10 août 2021 à 18:02
Bonjour, dans mon projet en symfony, après avoir ajouté la propriété média à mon entité topo en relation ManyToOne j'ai fais les migrations, 

php bin/console make:migration marche

.Mais avec

php bin/console make:migration

 je tombe sur les erreurs décrites sur les deux images. 



En plus sur la route de la vue des topos, topo_show, le bug suivant : 

App\Entity\Topo object not found by the @ParamConverter annotation.

Je ne trouve pas encore la solution.
En plus j'ai mon api qui a planté, qui ne retrouve plus les hydramember.
Pourriez-vous m'aidez? Merci

5 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
7 août 2021 à 10:54
Bonjour,

La relation ManyToOne ajoutée à l'entité implique une contrainte de clé étrangère en sql, ce qui correspond au code de la migration "ALTER TABLE media ADD CONSTRAINT FK_X FOREIGN KEY...".

Or l'erreur indique que cette contrainte ne peut être appliquée car des données présentes dans la table media ne respectent pas cette contrainte. Tu dois donc avoir des lignes dans la table media pour lesquels la clé étrangère topo_id ne correspond à aucun enregistrement de la table topo.

Tu peux essayer de corriger les données dans la table ou simplement supprimer les données avant d'appliquer la migration.

Concernant l'annotation @ParamConverter, il faudrait voir l'url appelée dans le navigateur et la route définie dans ton contrôleur.
Quel est le paramètre défini dans la route pour identifier le topo ? Est-ce que l'identifiant passé dans l'url correspond bien à un topo présent dans la base ?

Bonne journée,
1