【发布时间】:2017-06-21 22:39:13
【问题描述】:
我复制了一个带有安装 Debian、Nginx、PhpMyAdmin 的 vagrant box 的项目。在新项目中,Laravel 的 php artisan migrate 不再工作,我收到错误:
[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1709 Index column size too large. The maximum column size is 767 bytes. (SQL: alter table `courses` add unique `courses_name_unique`(`na
me`))
当我对工作项目数据库进行转储(结构+数据)并将其导入数据库时给出迁移错误,然后一切正常,它会创建所有表并导入数据..
如何固定大小以便我可以运行 migrate 方法?
【问题讨论】:
-
设置键的长度:alter table
coursesadd uniquecourses_name_unique(FIELDNAME(299)); -
@BerndBuffen 我想使用 Laravel 迁移方法。该方法创建表并失败。为什么迁移在数据库服务器 A 而不是 B 上工作?是否有设置不正确?
-
您可能正在使用不同的字符集。虽然
varchar(255)可能会使用utf8进行索引 - 它会因utf8mb4而失败 -
@PaulSpiegel 你是对的,迁移命令在工作服务器上创建
utf8_unicode_ci,在不工作的服务器上创建utf8mb4_unicode_ci排序规则。如何让数据库默认创建正确的字符集? -
如何在迁移脚本中创建数据库?
标签: mysql indexing laravel-5 vagrant