前言
本文主要介紹了Laravel 5.4因特殊字段太長導致migrations報錯的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
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 `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 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() { // } }
以上是Laravel5.4框架中解決特殊欄位太長導致migrations報錯的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!