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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小程序运行报错:Failed to load local image resource xxx.png the server responded with。。。

    小程序运行报错:Failed to load local image resource xxx.png the server responded with。。。

    2021年3月12日
    163
  • 移动机器人轮式里程计

    移动机器人轮式里程计移动机器人灵魂三问:我在哪?我要去哪里?怎么去?其中,第一问对应机器人定位问题。定位问题可阐述为:移动机器人根据自身状态、传感器信息实时确定自己在世界(全局或局部)中的位置与姿态。阿克曼转向的无人驾驶汽车的定位方案主要有:轮式里程计、视觉里程计、激光里程计、惯性导航模块(IMU+GPS)以及多传感器融合。轮式里程计是一种最简单,获取成本最低的方法。与其它定位方案一样,轮式里程计也需要传感器感知外部信息,只不过,轮式里程计采用的电机转速测量模块是一种成本非常低廉的传感器。本文对搭建智能小车系统过程.

    2022年6月15日
    39
  • matlab中的im2bw函数_matlab中tofloat

    matlab中的im2bw函数_matlab中tofloat函数功能:该函数用于填充bai图像区域和“空洞”。语法格式:BW2=imfill(BW)这种du格式将一张二值图像显示在屏zhi幕上,允许用户使用鼠标在图像上点几个点,这几个点围成的区域即要填充的区域。要以这种交互方式操作,BW必须是一个二维的图像。用户可以通过按Backspace键或者Delete键来取消之前选择的区域;通过shift+鼠标左键单击或者鼠标右键单击或双击可以确定选择区…

    2025年11月5日
    3
  • Django(62)自定义认证类「建议收藏」

    Django(62)自定义认证类「建议收藏」前言如果我们不用使用drf那套认证规则,我们想自定义认证类,那么我们首先要知道,drf本身是如何定义认证规则的,也就是要查看它的源码是如何写的源码分析源码的入口在APIView.py文件下的di

    2022年7月29日
    3
  • 大数据分析应用的机遇与挑战「建议收藏」

    大数据分析应用的机遇与挑战「建议收藏」随着信息技能的发展,互联网家当的进步,计算机数据处理能力的快速增长,电子商务的日新月异及各种社交媒体的传播扩散,各种信息无时无刻不在影响着我们的生活。我们每时每刻都在自觉或者不自觉得与数据打交道,成为数据的记录者与传播者。海量数据的处理,以及如何利用大数据营销,给我们提出了更多的挑战。在这个人人都高喊“大数据时代”的今天,数据似乎被提到一个前所未有的高度。无论是个人还是企业,无论是网络营销还是线…

    2022年5月15日
    40
  • 二十年前是怎样开发游戏的?

    二十年前是怎样开发游戏的?

    2022年3月5日
    37

发表回复

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

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