温馨提示:本文翻译自stackoverflow.com,查看原文请点击:mysql - Symfony 4 SQLSTATE[42000] Specified key was too long
doctrine-orm mysql symfony utf-8 orm

mysql - Symfony 4 SQLSTATE [42000]指定的密钥太长

发布于 2020-03-31 23:12:41

我正在尝试从Symfony 4中的Entity创建数据库。但是,结果是:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

我知道这是因为它想使用utf8mb4字符集和utf8mb4_unicode_ci排序规则。我想将我的doctrine.yaml文件替换为utf8和utf8_unicode_ci以及:

@ORM\Table(name="users", options={"collate"="utf8_unicode_ci", "charset"="utf8", "engine"="MyISAM"})

但是它仍在尝试使用utf88mb4。如何强制它使用utf8?

查看更多

提问者
Janusz Kubala
被浏览
80
Janusz Kubala 2018-06-09 18:37

好的,我找到了答案,所以基本上我有很多迁移文件,而php一直在尝试使用旧配置创建数据库。为了正确创建它,我删除了Migrations目录并使用了

php bin/console doctrine:cache:clear-metadata

这有所帮助,现在创建者使用了新配置。