3 votes

Doctrine veut "ALTER TABLE coo_users CHANGE id id VARCHAR(255) NOT NULL ;" mais veut le faire à chaque fois que je mets à jour le schéma.

Si je le fais bin/console doctrine:schema:update --force le résultat est le suivant :

Mise à jour du schéma de la base de données...
Le schéma de la base de données a été mis à jour avec succès ! La requête "1" a été exécutée

Et ce, à chaque fois que j'exécute le programme update commande.

Ainsi, avec bin/console doctrine:schema:validate Je vois cela :

[Mapping] OK - Les fichiers de mapping sont corrects.
[FAIL - Le schéma de la base de données n'est pas synchronisé avec le fichier de mappage actuel.

La requête que Doctrine veut exécuter est toujours la même ( bin/console doctrine:schema:update --dump-sql ) :

ALTER TABLE coo_users CHANGE id id VARCHAR(255) NOT NULL;

Que se passe-t-il ? Il semble que Doctrine veuille faire une modification car il veut changer le champ. id à nouveau sur le terrain id à chaque fois, dans une modification infinie.

LA CARTOGRAPHIE

/**
 * @ORM\Id
 * @ORM\Column(type="string", unique=true)
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
protected $id;

1voto

Aerendir Points 23

Erreur trouvée !

Le problème est que le type de colonne est défini sur string alors qu'il doit être integer .

Il a été fixé à string car j'ai utilisé un générateur personnalisé qui nécessitait un string domaine. Lorsque j'ai supprimé le générateur personnalisé, je n'ai pas changé le type de champ en integer et Doctrine voulait donc modifier le champ à chaque fois.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X