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

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

Barbara Streisand
Lepaskan: 2024-12-18 21:39:11
asal
896 orang telah melayarinya

Laravel 5.4 Migration Error: How to Fix

Ralat Migrasi Laravel: "Kunci Yang Ditentukan Terlalu Panjang"

Masalah yang Dihadapi:

Apabila cuba menggunakan make arahan :auth dalam Laravel 5.4, ralat pemindahan pangkalan data berlaku:

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

Penyelesaian:

Untuk menyelesaikan isu ini, yang biasa dihadapi apabila menggunakan enjin MySQL InnoDB lalai, terdapat dua pendekatan:

AppServiceProvider Kaedah:

  1. Buka app/Providers/AppServiceProvider.php.
  2. Tambah kod berikut di dalam kaedah but:
use Illuminate\Support\Facades\Schema;

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

Konfigurasi Pelayan MySQL:

Sebagai alternatif, anda boleh mengubah suai konfigurasi pelayan MySQL untuk mendayakan pilihan innodb_large_prefix. Arahan khusus untuk mendayakan pilihan ini berbeza-beza bergantung pada persediaan pangkalan data anda. Rujuk dokumentasi MySQL untuk panduan.

Nota Tambahan:

  • Penyelesaian yang disediakan adalah khusus untuk Laravel 5.4. Untuk versi lain, rujuk dokumentasi yang berkaitan.
  • Kaedah defaultStringLength(191) menetapkan panjang rentetan maksimum lalai untuk semua lajur pangkalan data kepada 191 aksara.
  • Pilihan innodb_large_prefix membenarkan MySQL menggunakan awalan yang lebih besar untuk indeks, menyelesaikan had panjang kunci.

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

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