数据库迁移: Key 过长

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 8
nfangxu

手动给索引起个名

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

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

5年前 评论

config/database.php

file

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

数据库迁移文件如下:
file

5年前 评论

file 500???

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

AppServiceProvider 文件加入

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

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

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

第二个参数设置索引名

5年前 评论

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

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

5年前 评论

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