migration impossible: NOT NULL constraint failed

Par marow, il y a 5 ans


Bonjour, j'utilise symfony et j'essaie actuellement de faire une migration avec les commandes suivantes:

php console make:migration php console doctrine:migrations:migrate

sauf qu'en retour, j'obtiens les erreurs suivantes:

In AbstractSQLiteDriver.php line 55: An exception occurred while executing 'INSERT INTO commentaire (id, article_id, contenu) SELECT id, article_id, con tenu FROM __temp__commentaire': SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: commentaire.datecreation In Exception.php line 18: SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: commentaire.datecreation In PDOConnection.php line 132: SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint failed: commentaire.datecreation

Je ne sais pas pourquoi pas j'ai une erreur de ce type alors que j'ai bien créé la date dans ma classe Commentaire, avec un constructeur:

/** * @ORM\Column(type="datetime") */ private $datecreation; /** * Commentaire constructor. */ public function __construct(){ $this -> datecreation = new \DateTimeImmutable(); }

Cela m'empêche de faire ma migration.
Auriez-vous une idée d'où peut venir l'erreur?

Merci pour votre aide!

4 réponses

Curvata, il y a 5 ans

Dans ton insert il n'y a pas ton champ date de création.

marow, il y a 5 ans

Effectivement, par contre je ne vois pas trop où se trouve cette portion de code dans mon projet :
"An exception occurred while executing 'INSERT INTO commentaire (id, article_id, contenu) SELECT id, article_id, con
tenu FROM tempcommentaire':"

Je suis allée dans le fichier AbstractSQLiteDriver.php mais ça n'y est pas. Où est-ce que je peux trouver cette ligne de code ?

marow, il y a 5 ans

En fait je viens de voir où se trouvait ce code avec une recherche dans le projet, il y a 31 matches... Comment savoir lequel je dois modifier ?

marow, il y a 5 ans

Finalement j'ai supprimé la base de donnée ainsi que les fichiers migration version, etc. et j'ai recréé la base de donnée en ligne de commande avec
php console make:migration
php console doctrine:migrations:migrate
php bin/console doctrine:schema:update --dump-sql
php bin/console doctrine:schema:update --force

et ça marche !

Merci à toi en tout cas :)