跳到主要內容區塊
:::
首頁 文章分享列表 文章分享

Laravel migrate 出現 42000 max key length is 767 bytes

當我們使用 migrate 出現以下訊息:

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

這個問題出現在Laravel 5.4版本之後,調整方式如下

解決方式(一)
在 migrate 中使用 unique() 時指定長度為191,必須修改每一個有使用到 unique() 的migrate檔案

$table->string('email', 191)->unique();

解決方式(二):
編輯 app\Providers\AppServiceProvider.php 增加

use Schema;

並在boot funciton內增加

Schema::defaultStringLength(191);

完整程式碼如下:

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Schema::defaultStringLength(191);
    }
}

 

這篇文章是否對您有幫助?