laravel 數據庫遷移報錯

問題描述

(1)laravel 5.4或者更高版本 改變了默認的數據庫字符集,如今utf8mb4包括存儲emojis支持。若是你運行MySQL v5.7.7或者更高版本,則不須要作任何事情。
(2)當你試着在一些MariaDB或者一些老版本的的MySQL上運行 migrations 命令時,你可能會碰到下面這個錯誤:
Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
【指定的鍵太長了,最大鍵的長是767bytes,由於laravel默認字符串長度是767bytes,因此要本身去手動配置。】

解決方案

<?php
namespace App\Providers;
// 導入Schema類
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        // 在app/providers/AppServiceProvider.php中boot方法中加上 
        Schema::defaultStringLength(191);
    }
}
相關文章
相關標籤/搜索