Jan*_*ala 10 mysql orm utf-8 symfony doctrine-orm
我正在尝试从 Symfony 4 中的实体创建数据库。但是结果是:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Run Code Online (Sandbox Code Playgroud)
我知道这是因为它试图使用 utf8mb4 字符集和 utf8mb4_unicode_ci 排序规则。我已经尝试将我的 Doctic.yaml 文件替换为 utf8 和 utf8_unicode_ci 以及:
@ORM\Table(name="users", options={"collate"="utf8_unicode_ci", "charset"="utf8", "engine"="MyISAM"})
Run Code Online (Sandbox Code Playgroud)
但它仍在尝试使用 utf88mb4。如何强制它使用 utf8?
小智 7
嗨,我得到同样的错误: SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节
我通过将长度更改为 191 来修复它,如下所示: @ORM\Column(type="string", length=191, unique=true)
好的,我找到了答案,所以基本上我有很多迁移文件,并且 php 不断尝试使用旧配置创建数据库。为了正确创建它,我删除了 Migrations 目录并使用
php bin/console doctrine:cache:clear-metadata。
这很有帮助,现在创建者使用了新的配置。
| 归档时间: |
|
| 查看次数: |
6704 次 |
| 最近记录: |