当我运行comand php bin/console doctrine:migration:migrate
时,出现此错误,我不知道它来自哪里。
命令行错误: 在AbstractMySQLDriver.php第99行中:
执行'CREATE TABLE用户(id INT AUTO_INCREMENT NOT NULL,发送电子邮件VARCHAR(180)NOT NU)时发生异常 LL,角色JSON NOT NULL,密码VARCHAR(255)NOT NULL,UNIQUE INDEX UNIQ_8D93D649E7927C74(电子邮件),PRIMARY KEY(id ))默认字符集utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB':
SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。检查手册 对应于您的MariaDB服务器版本,以在'JSON NOT NULL,密码VARCHAR(255)附近使用正确的语法 不为空,第1行的UNIQUE INDEX UNIQ_8D93D649E7927C7'
在PDOConnection.php第109行中:
SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。检查手册 对应于您的MariaDB服务器版本,以在'JSON NOT NULL,密码VARCHAR(255)附近使用正确的语法 不为空,第1行的UNIQUE INDEX UNIQ_8D93D649E7927C7'
在PDOConnection.php第107行中:
SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。检查手册 对应于您的MariaDB服务器版本,以在'JSON NOT NULL,密码VARCHAR(255)附近使用正确的语法 不为空,第1行的UNIQUE INDEX UNIQ_8D93D649E7927C7'
我的环境 my env
答案 0 :(得分:1)
安德烈(Andrei)是对的。您要么必须升级数据库,要么(更容易地)配置symfony以使用较低版本的MySQL。
config/packages/doctrine.yaml
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.6'
here,您可以找到具有MySQL和MariaDB兼容性的表。
答案 1 :(得分:0)
将您的MySQL版本更新为MySQL 5.7。 因为您当前的版本不支持MySQL 5.7的JSON对象。
答案 2 :(得分:0)
在这种情况下,您只需将此代码粘贴到 config / packages / doctrine.yaml 中:
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.5'
答案 3 :(得分:-1)
请注意,版本信息可能与数据库 URL 中定义的版本信息冲突
如果您将服务器版本信息添加到doctrine.yaml 并且问题仍然存在,请尝试在最后检查“serverVersion”,如果您的数据库URL 并将其设置为5.6 或您找到的兼容版本