天天看點

Laravel 5.4因特殊字段太長導緻migrations報錯的解決

前言

本文主要介紹了關于Laravel 5.4因特殊字段太長導緻migrations報錯的相關内容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

laravel 5.4 改變了預設的資料庫字元集,現在utf8mb4包括存儲emojis支援。MySQL 需要v5.7.7或者更高版本,當你試着在一些MariaDB或者一些老版本的的MySQL上運作 migrations 指令時,你會碰到下面這個錯誤:

[IlluminateDatabaseQueryException]

SQLSTATE[42000]: Syntax error or access violati/【php教程_linux常用指令_網絡運維技術】/on: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table

users

add unique `use

rs_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 AppProviders;

use IlluminateSupportServiceProvider;

//添加的代碼

u/【當下浏覽的伺服器和開發工具是哪些】/se IlluminateSupportFacadesSchema;

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()

{

//

}

}

以上就是這篇文章的全部内容了,本文還有許多不足,希望本文的内容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流