数据库迁移: Key 过长

Laravel
key was too long;max key length is 1000 bytes.
key的最大长度是1000,这里占用了1071个字节,请问是哪里出错了?有好的解决方案吗?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 8
nfangxu

手动给索引起个名

4年前 评论
李先森 (楼主) 4年前

搜到这么一个答案 链接:https://www.cnblogs.com/wangzhaobo/p/95862... ,可是我想这不是一个好的解决方案,似乎也并不能解决我的问题。
file

4年前 评论

config/database.php

file

4年前 评论
李先森 (楼主) 4年前

数据库迁移文件如下:
file

4年前 评论

file 500???

4年前 评论
李先森 (楼主) 4年前
CrazyZard

AppServiceProvider 文件加入

public function boot()
{    
    Schema::defaultStringLength(191);
}
4年前 评论
李先森 (楼主) 4年前
李先森 (楼主) 4年前
nfangxu
    public function morphs($name, $indexName = null)
    {
        $this->string("{$name}_type");

        $this->unsignedBigInteger("{$name}_id");

        $this->index(["{$name}_type", "{$name}_id"], $indexName);
    }

第二个参数设置索引名

4年前 评论

这个错误是因为 你需要建立索引的字段太长了, 导致建索引的时候报错.

你百度 mysql 1071就知道怎么做了.

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!