[報錯:字元太長] SQLSTATE [42000]: Syntax error or access violation: 1071 Specified key was t oo long;

王子昊發表於2019-05-20

情景:執行php artisan migrate 報錯

[報錯:字元太長]SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long;

Laravel utf8mb4預設使用字符集,其中包括支援在資料庫中儲存“emojis”。如果您執行的是早於5.7.7版本的MySQL版本或早於10.2.2版本的MariaDB,您可能需要手動配置遷移生成的預設字串長度,以便MySQL為它們建立索引。您可以通過呼叫以下方法中的方法來配置:Schema::defaultStringLengthAppServiceProvider

use Illuminate\Support\Facades\Schema;

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

或者,您可以innodb_large_prefix為資料庫啟用該選項。有關如何正確啟用此選項的說明,請參閱資料庫的文件。
參考地址

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章