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
808 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!

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