web-dev-qa-db-fra.com

Erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre SQL In symfony

Quand je lance comand php bin/console doctrine:migration:migrate j'ai eu cette erreur je ne sais pas d'où vient.

erreur de ligne de commande: dans la ligne 99 de AbstractMySQLDriver.php:

Une exception s'est produite lors de l'exécution de 'CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, email VARCHAR (180) NOT NU LL, rôles JSON NOT NULL, password VARCHAR (255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY (id) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ':

SQLSTATE [42000]: erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de 'JSON NOT NULL, mot de passe VARCHAR (255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C7' à la ligne 1

Dans PDOConnection.php ligne 109:

SQLSTATE [42000]: erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de 'JSON NOT NULL, mot de passe VARCHAR (255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C7' à la ligne 1

Dans PDOConnection.php ligne 107:

SQLSTATE [42000]: erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de 'JSON NOT NULL, mot de passe VARCHAR (255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C7' à la ligne 1

Mon env mon env

7
Abdo Abo

Andrei a raison. Vous devez soit mettre à niveau votre base de données ou (beaucoup plus facile) configurer votre symfony pour utiliser la version inférieure de MySQL.

config/packages/doctrine.yaml

doctrine:
dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: '5.6'

ici vous pouvez trouver un tableau avec les compatibilités de MySQL et MariaDB.

1
Ultimo

Mettez à jour la version de MySQL vers MySQL 5.7. Parce que votre version actuelle ne prend pas en charge les objets JSON de MySQL 5.7.

0
mojtaba

Dans ce cas, vous pouvez simplement coller ce code dans config/packages/doctrine.yaml:

doctrine:
  dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: '5.5'
0
MUSTAPHA GHLISSI