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


相关推荐

  • linux移除包的命令,linux的yum卸载包命令说明

    linux移除包的命令,linux的yum卸载包命令说明Linux中的yum命令可以通过相关命令对包进行安装、卸载或者更新等,下面由学习啦小编为大家整理了Linux的yum卸载包命令说明的相关知识,希望对大家有帮助!linux的yum卸载包命令说明1>使用yumremove卸载包.如下所示:使用’yumremove包名’命令卸载包.Shell代码#yumremovepostgresql.x86_64ResolvingDepen…

    2022年4月28日
    314
  • TCP/IP数据包结构具体解释

    TCP/IP数据包结构具体解释

    2021年11月16日
    53
  • 【MyBatis】 动态SQL——模糊查询 LIKE

    【MyBatis】 动态SQL——模糊查询 LIKE一、like’%?%’SELECT*FROMt_usrWHEREnamelike’%${name}%’SQL解析为:SELECT*FROMt_usrWHEREnamelike’%海%’传参必须用${}不能用#{},这样写的弊端是不安全,不能防sql注入有关LIKE使用,请参见:https://blog.csdn.net/wrs120/articl…

    2022年5月28日
    146
  • Linux环境MySQL卸载教程「建议收藏」

    Linux环境MySQL卸载教程「建议收藏」Linux环境MySQL卸载

    2022年9月1日
    3
  • ConcurrentHashMap源码分析(JDK8版本)

    ConcurrentHashMap源码分析(JDK8版本)注:本文源码是JDK8的版本,与之前的版本有较大差异ConcurrentHashMap是conccurrent家族中的一个类,由于它可以高效地支持并发操作,以及被广泛使用,经典的开源框架Spring的底层数据结构就是使用ConcurrentHashMap实现的。与同是线程安全的老大哥HashTable相比,它已经更胜一筹,因此它的锁更加细化.

    2022年6月24日
    28
  • 计算机vb语言程序设计_vb语言程序设计基础

    计算机vb语言程序设计_vb语言程序设计基础VisualBasic程序设计教程:计算机类语音编辑锁定讨论上传视频《VisualBasic程序设计教程:计算机类》是中国科学技术出版社出版的图书,作者是王东、刘福来。中文名VisualBasic程序设计教程:计算机类出版社中国科学技术出版社定价39.20作者王东刘福来ISBN9787504646798VisualBasic程序设计教程:计算机类内容简介编辑语音《全国高等…

    2022年10月7日
    2

发表回复

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

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