Rumah > pangkalan data > tutorial mysql > Ralat Migrasi Laravel: Bagaimana untuk Membetulkan Isu 'Kunci Ditentukan Terlalu Panjang'?

Ralat Migrasi Laravel: Bagaimana untuk Membetulkan Isu 'Kunci Ditentukan Terlalu Panjang'?

Barbara Streisand
Lepaskan: 2024-12-16 04:16:13
asal
875 orang telah melayarinya

Laravel Migration Error: How to Fix the

Ralat Migrasi Laravel: Menangani Isu "Kunci Ditentukan Terlalu Panjang"

Apabila cuba menggunakan php artisan Laravel 5.4 make:auth arahan, pengguna mungkin menghadapi perkara berikut ralat:

[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 users_email_unique(email))
Salin selepas log masuk

Punca:

Ralat berlaku apabila panjang kekunci indeks melebihi panjang maksimum yang dibenarkan untuk enjin pangkalan data. Secara lalai, MySQL dan variannya mempunyai panjang kunci indeks maksimum 767 bait.

Penyelesaian:

Kaedah 1: Kemas Kini Penyedia Perkhidmatan Aplikasi

Seperti yang disyorkan dalam dokumentasi rasmi Laravel, tambahkan kod berikut pada fail app/Providers/AppServiceProvider.php:

use Illuminate\Support\Facades\Schema;

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

Ini meningkatkan panjang rentetan lalai untuk semua migrasi kepada 191 aksara, yang berada dalam had yang dibenarkan.

Kaedah 2: Dayakan Awalan Besar InnoDB

Sebagai alternatif, pengguna boleh mendayakan pilihan innodb_large_prefix untuk pangkalan data MySQL mereka. Rujuk dokumentasi pangkalan data untuk mendapatkan arahan tentang cara mendayakan pilihan ini dengan betul. Penyelesaian ini membolehkan kunci indeks yang lebih panjang, menjadikannya lebih sesuai untuk set data yang lebih besar.

Atas ialah kandungan terperinci Ralat Migrasi Laravel: Bagaimana untuk Membetulkan Isu 'Kunci Ditentukan Terlalu Panjang'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan