首頁 >後端開發 >php教程 >如何修復 Laravel 遷移中的「指定金鑰太長」錯誤?

如何修復 Laravel 遷移中的「指定金鑰太長」錯誤?

DDD
DDD原創
2024-10-30 22:44:03781瀏覽

How to Fix

修正Laravel 遷移中的「指定金鑰太長」錯誤

在Laravel 遷移表時,開發者可能會遇到「指定金鑰太長」的問題太長」的錯誤。這是因為MySQL 中鍵的預設最大長度是767 位元組。

一種解決方案是在遷移中明確指定鍵長度。例如:

Schema::create('users', function(Blueprint $table) {
    $table->increments('id');
    $table->string('email', 250)->unique('users_email_unique');
});

Laravel 5.4 以上

在Laravel 5.4 以上,可以在AppServiceProvider.php 檔案中設定預設字串長度:

<code class="php">use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}</code>

或者,您可以指定遷移中各個列的長度:

<code class="php">Schema::create('users', function(Blueprint $table) {
    $table->increments('id');
    $table->string('email', 191)->unique('users_email_unique');
});</code>

以上是如何修復 Laravel 遷移中的「指定金鑰太長」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn