【问题标题】:Symfony with FOSUserBundle error while updating schema更新架构时出现 FOSUserBundle 错误的 Symfony
【发布时间】:2016-05-13 12:17:09
【问题描述】:

我关注这个话题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!

【问题讨论】:

标签: php symfony doctrine fosuserbundle


【解决方案1】:

替换

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2019-01-23
    相关资源
    最近更新 更多