前言
本文主要介紹了關于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()
{
//
}
}
以上就是這篇文章的全部内容了,本文還有許多不足,希望本文的内容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流