php - Symfony 更新架构时出现 FOSUserBundle 错误

标签 php symfony doctrine fosuserbundle

我关注这个主题http://symfony.com/doc/current/bundles/FOSUserBundle/index.html

我执行了步骤 1-6,但是当我必须更新数据库架构时。

$ php bin/console doctrine:schema:update --force

我得到了严重的错误。

[Doctrine\DBAL\Exception\DriverException]
An exception occurred while executing 'CREATE TABLE fos_user (id INT AUTO_I
NCREMENT NOT NULL, username VARCHAR(255) NOT NULL, username_canonical VARCH
AR(255) NOT NULL, email VARCHAR(255) NOT NULL, email_canonical VARCHAR(255)
NOT NULL, enabled TINYINT(1) NOT NULL, salt VARCHAR(255) NOT NULL, passwor
d VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL, locked TINYINT(1
) NOT NULL, expired TINYINT(1) NOT NULL, expires_at DATETIME DEFAULT NULL,
confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at DATETIM
E DEFAULT NULL, roles LONGTEXT NOT NULL COMMENT '(DC2Type:array)', credenti
als_expired TINYINT(1) NOT NULL, credentials_expire_at DATETIME DEFAULT NUL
L, UNIQUE INDEX UNIQ_957A647992FC23A8 (username_canonical), UNIQUE INDEX UN
IQ_957A6479A0D96FBF (email_canonical), PRIMARY KEY(id)) DEFAULT CHARACTER S
ET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB':
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was  t
oo long; max key length is 767 bytes

有错误:

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

我不知道如何解决它。有人可以帮忙吗?

顺便说一句。我正在使用 Symfony 3!

最佳答案

替换

username_canonical VARCHAR(255) NOT NULL

username_canonical VARCHAR(191) NOT NULL

并对 email_canonical 执行相同的操作

如果您使用 Doctrine ORM 实体,则必须设置:

/**
 * @ORM\Column(type="string", unique=true, length=191)
 */
private $usernameCanonical;

查看长度=191

关于php - Symfony 更新架构时出现 FOSUserBundle 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37209862/

相关文章:

php - 避免在构造函数服务 Symfony 中使用长参数列表

symfony - INTERVAL 1 MONTH 不使用 symfony2 Doctrine ?

php - Doctrine findBy 或语句

php - $query->andWhere() 中的 Foreach 语句

php - 使用php发送邮件报错

php - Zend2 fatal error : Class 'Album\ResultSet' not found

php - 为什么 php 函数加载到错误的位置

php - 拒绝访问目录中的所有文件,除非特定的 php 页面是引荐来源网址

php - 如何覆盖 Symfony2 包中的实体

symfony - 如何在 Symfony2 中优化 DQL 查询?