mysql - Symfony | 如何修复迁移 MySQL 语法错误
问题描述
我正在创建一个登录/注册系统,因为我以前从未做过。使用 Symfony 框架,我正在关注他们的文档(https://symfony.com/doc/current/security.html)。它建议我通过创建一个用户实体
php bin/控制台 make:user
这将创建我的用户实体和存储库。
但是,当我创建迁移并通过运行迁移时:
php bin/控制台 d:m:m
它返回给我这个语法错误:
Migration 20190502143453 failed during Execution. Error An exception occurred while executing 'CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649F85E0677 (username), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB':
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use
near 'JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649F85E067' at line 1
在错误消息中找到返回语法错误的完整 MySQL 表创建,但是,这本身就是查询:
$this->addSql('CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649F85E0677 (username), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
遵循迁移的步骤后,我不确定为什么会出现语法错误,因为它看起来对我来说是正确的。SQL 是自动生成的。
如果有人知道如何解决这个语法错误,任何信息将不胜感激。
如果需要更多信息,我很乐意提供信息。
此致,
史蒂夫。
解决方案
推荐阅读
- python-3.x - Python - 购物车 - while 循环的问题
- r - 在闪亮的数据表中过滤多年日期
- swift - 如何在 Swift 4 中逐行写入文件
- jsf - 通过 bundle.properties 将动态参数传递给图形图像的 alt 文本值
- javascript - 在 For 循环中使用按钮单击更新从 Firestore 返回的值
- laravel - 如何按月获取数据?Laravel 雄辩
- jackson - 将对象转换为地图时保持类型
- css - 为什么要将 CSS 文件导入打字稿?
- c# - EF Core 拥有的类型 - 无法将实体类型添加到模型中,因为已存在同名的弱实体类型
- python - TypeError:无法将元组连接到字节