部署到阿里云 导入 sql 报错?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

在AppServiceProvider里加上

file
将这个值修改为合适的值就行了

5年前 评论
讨论数量: 3

键的长度超过了阈值,看看字符集设置有没有错,然后允许长度超出限制试试。

5年前 评论

在AppServiceProvider里加上

file
将这个值修改为合适的值就行了

5年前 评论

多读文档哦,Laravel 默认使用 utf8mb4 字符,你的数据库应该是utf8的,解决办法是手动配置迁移生成的默认字符串长度。 即在 AppServiceProvider 中调用 Schema::defaultStringLength 方法来配置它 :

use Illuminate\Support\Facades\Schema;

/**
 * 引导任何应用程序服务。
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}

具体文档在数据库:迁移中的索引长度 & MySQL / MariaDB部分。

为什么是191很多人不明白,简单解释下:utf8下3字节表示一个字符,utf8mb4是4字节表示一个字符,mysql默认情况下单个列的索引不能超过767位,utf8下长度255的索引占255X3=765,但Laravel 默认使用 utf8mb4 字符,这样255X4=1020,超过了767,改称191后,191X4=764。

5年前 评论

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