Laravel 5.4: 特殊字段太长报错 420000 字段太长

Laravel 5.4: 特殊字段太长报错 420000 字段太长

laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。

当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误:

[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 users add unique users_email_unique(email))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

我们可以在 AppServiceProvider.php 文件里的 boot 方法里设置一个默认值:

复制代码
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Schema; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); } /** * Register any application services. * * @return void */ public function register() { //  } }
复制代码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • matlab secant method

    matlab secant method

    2021年12月16日
    48
  • mse均方误差计算公式推导_误差函数erf是怎么算出来的

    mse均方误差计算公式推导_误差函数erf是怎么算出来的 

    2022年9月30日
    4
  • 从头开始学MySQL——-存储过程与存储函数(1)

    从头开始学MySQL——-存储过程与存储函数(1)10.1.1创建存储过程存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。创建存储过程的语句为CREATEPROCEDURE,创建存储函数的语句为CREATEFUNCTION。调用存储过程的语句为CALL。调用存储函数的形式就像调用MyS……

    2022年8月22日
    9
  • python用flask框架开发的(python做一个登录注册界面)

    Python-Flask构建用户注册登录后端逻辑架构1、项目结构2、app.pyfromflaskimportFlask,render_templatefromcontroller.user_controllerimportuser_controllerfromdatetimeimporttimedeltaimportosapp=Flask(__name__)app.register_blueprint(user_controller)app.config[‘JS

    2022年4月14日
    122
  • 【NOIP2013提高组】华容道

    【NOIP2013提高组】华容道题目背景 NOIP2013 nbsp 提高组 nbsp Day2 nbsp 试题 题目描述小 nbsp B nbsp 最近迷上了华容道 可是他总是要花很长的时间才能完成一次 于是 他想到用编程来完成华容道 给定一种局面 华容道是否根本就无法完成 如果能完成 最少需要多少时间 nbsp 小 nbsp B nbsp 玩的华容道与经典的华容道游戏略有不同 游戏规则是这样的 nbsp 1 nbsp 在一个 nbsp n m nbsp 棋盘上有 nbsp n m nbsp 个格子 其中有且只有一个格子是空白的 其余 nbsp n m

    2025年10月1日
    2
  • c language program_language deficit

    c language program_language deficitprintf(“%d\n”,a) scanf(“%d%d”,&num1,&num2),&代表存放的是地址,scanf相当于scannerin 在同一个工程项目中,全局变量可通用,如果要A类要用的B类的全局变量num,则这样声明,externintnum,然后就可以使用了………………………………………………………………………………………….

    2022年9月28日
    4

发表回复

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

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