laravel 表迁移报错[通俗易懂]

laravel 表迁移报错[通俗易懂]laravel 表迁移报错

大家好,又见面了,我是你们的朋友全栈君。

error infomation:

Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `use
rs` add unique `users_email_unique`(`email`))

  at D:\WWW\test\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes")
      D:\WWW\test\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

  2   PDOStatement::execute()
      D:\WWW\test\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

  Please use the argument -v to see more details.

解决:
索引长度 & Mysql / MariaDB
Laravel 默认使用 utf8mb4 编码,它支持在数据库中储存 emojis 。如果你是在版本低于 5.7.7 的 MySQL 或者版本低于 10.2.2 的 MariaDB 上创建索引,那你就需要手动配置数据库迁移的默认字符串长度。
即在 AppServiceProvider 中调用 Schema::defaultStringLength 方法来配置它:

use Illuminate\Support\Facades\Schema;

/** * 引导任何应用程序服务 * * @return void */
 public function boot()
 { 
   
     Schema::defaultStringLength(191);
 }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105807.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java.lang.String cannot be cast to com.alibaba.fastjson.JSONObject解决办法

    java.lang.String cannot be cast to com.alibaba.fastjson.JSONObject解决办法java.lang.ClassCastException:java.lang.Stringcannotbecasttocom.alibaba.fastjson.JSONObjectatcom.alibaba.fastjson.JSONObject.getJSONObject(JSONObject.java:109)ResultModel>rs=

    2022年7月16日
    90
  • stm32f411中文手册(基于stm32f407)

    文章目录智能门锁一、项目背景二、项目功能要求三、元件准备四、项目设计(一)原理图设计(二)硬件设计(三)程序设计智能门锁资料链接:stm32智能门锁.rar哔哩哔哩项目展示视频:https://b23.tv/bxfxvd一、项目背景在消费升级渗透在各个领域的今天,国民消费发生着巨大的变化,与每个人息息相关的家居行业也是如此。现今,越来越多的智能家居产品出现在普通老百姓的生活中,智能照明、智能窗帘、智能扫地机器人等各种智能产品都给人们的生活带来了极大的便利。智能门锁作为智能家居中重要的一环,也成

    2022年4月13日
    337
  • JDK1.8下载安装(Windows版)

    JDK1.8下载安装(Windows版)官网下载JDK在oracle上的下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html,根据自己的需要,我这儿选择的是“JavaSE8u201/JavaSE8u202”,点击【JDK-DOWNLOAD】,打开第二张截图,如图选择接受,然后下载“JavaSEDevelopmentKit…

    2022年7月16日
    19
  • python爬虫爬图片教程_爬虫爬取图片的代码

    python爬虫爬图片教程_爬虫爬取图片的代码用Python爬虫来爬小姐姐本教程将教你从0开始走进Python爬虫1.我们先要知道Python爬虫的原理基本的Python爬虫原理很简单,分为三步获取网页源码通过分析源码并通过代码来获取其中想要的内容进行下载或其他操作话不多说直接开干注意!本教程只是为了快速入门爬虫并实现一个功能,不考虑代码写的漂不漂亮,规不规范先准备上我们的目标网页开始我用的工具是:JetBrai…

    2025年6月28日
    4
  • 面试官:Java的重写和重载有什么区别?[通俗易懂]

    面试官:Java的重写和重载有什么区别?[通俗易懂]老读者都知道了,七年前,我从美女很多的苏州回到美女更多的洛阳(美化了),抱着一幅“从二线城市退居三线城市”的心态,投了不少简历,也“约谈”了不少面试官,但仅有两三个令我感到满意。其中有一位叫老马,至今还活在我的微信通讯录里。他当时扔了一个面试题把我砸懵了:“王二,Java的重写(Override)和重载(Overload)有什么区别?”那年我二十三岁,正值青春年华,大约就是周杰伦发布《八度空间…

    2025年10月16日
    4
  • C语言编程中void什么意思,程序设计中遇到的void到底是什么意思

    C语言编程中void什么意思,程序设计中遇到的void到底是什么意思部分编程的初学者都会问”void是什么意思”,”为什么很多函数前都要加个void”.实际上,void最简单的解释就是把0转换成空类型的意思。下面用各个开发语言来详解void1.C语言中的void表示空类型,它跟int,float是同地位的,一般用在没有返回值的函数中,比如你写voidmain(),主函数完了不用写return语句,但是如果是intmain()或者是main(),你不写r…

    2022年5月12日
    66

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号