7

当我运行命令时,php bin/console doctrine:migration:migrate我得到了这个错误,我不知道是从哪里来的。

命令行错误:在 AbstractMySQLDriver.php 第 99 行:

执行'CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NU LL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id ) 时发生异常) 默认字符集 utf8mb4 整理 utf8mb4_unicode_ci ENGINE = InnoDB':

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C7”附近使用正确的语法

在 PDOConnection.php 第 109 行:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C7”附近使用正确的语法

在 PDOConnection.php 第 107 行:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C7”附近使用正确的语法

我的环境 我的环境

4

4 回答 4

11

安德烈是对的。你要么必须升级你的数据库,要么(更容易)配置你的 symfony 以使用较低版本的 MySQL。

config/packages/doctrine.yaml

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

在这里,您可以找到一个具有 MySQL 和 MariaDB 兼容性的表。

于 2018-12-13T19:22:59.550 回答
0

将您的 MySQL 版本更新为 MySQL 5.7。因为您当前的版本不支持 MySQL 5.7 的 JSON 对象。

于 2019-09-26T14:41:52.137 回答
0

在这种情况下,您可以简单地将这段代码粘贴到config/packages/doctrine.yaml中:

doctrine:
  dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: '5.5'
于 2019-10-03T19:03:48.767 回答
0

请注意,版本信息可能与数据库 URL 中定义的版本信息冲突

如果您将服务器版本信息添加到教义.yaml 并且问题仍然存在,请尝试在您的数据库 URL 的末尾检查“serverVersion”并将其设置为 5.6 或您找到的兼容版本

于 2021-05-25T10:31:01.703 回答