Migrasi Laravel: Menyelesaikan Masalah Ralat "Kunci Unik Terlalu Panjang"
Ralat "kunci unik terlalu panjang" dalam migrasi Laravel berlaku apabila unik index cuba menggunakan kunci yang melebihi panjang maksimum yang dibenarkan. Ralat ini boleh dihadapi semasa mentakrifkan indeks unik pada lajur dengan jenis data yang besar, seperti alamat e-mel.
Untuk menyelesaikan isu ini, pertimbangkan penyelesaian berikut:
1. Kurangkan Panjang Lajur:
Satu pendekatan ialah dengan menentukan panjang yang lebih pendek untuk lajur yang dipersoalkan. Contohnya, dalam migrasi yang disediakan, lajur e-mel ditakrifkan dengan panjang 320 aksara. Untuk menyelesaikan ralat, cuba kurangkan panjang ini kepada 250 aksara, iaitu panjang lalai untuk lajur e-mel.
2. Gantikan Panjang Rentetan Lalai (Laravel 5.4):
Jika anda menggunakan Laravel 5.4, anda boleh mengatasi panjang rentetan lalai menggunakan langkah berikut:
<code class="php">use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }</code>
Kod ini menetapkan panjang rentetan lalai kepada 191 aksara, yang sepatutnya mencukupi untuk kebanyakan kes.
3. Dayakan Penambahan Besar untuk Kunci Utama:
Jika ralat berterusan, semak sama ada kunci utama jadual ditetapkan kepada kenaikan automatik (biasanya ditakrifkan sebagai kenaikan('id')). Jika ya, cuba tukarkannya kepada kenaikan auto "integer besar" (bigIncrements('id')) seperti berikut:
<code class="php">$table->bigIncrements('id');</code>
Perubahan ini membenarkan kunci utama untuk menampung nilai yang lebih besar, yang berpotensi membebaskan beberapa ruang dalam indeks.
4. Semak Indeks dan Kunci Lain:
Pastikan tiada indeks atau kunci lain pada jadual yang boleh menyumbang kepada pelanggaran panjang kunci maksimum. Jika ada, cuba lepaskan atau ubah suai indeks tersebut untuk mengosongkan ruang dalam kawasan indeks.
Dengan melaksanakan penyelesaian ini, anda seharusnya dapat menyelesaikan ralat "kunci unik terlalu panjang" dan berjaya mencipta unik yang diingini indeks pada jadual pangkalan data anda.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Kunci Unik Terlalu Panjang\' dalam Migrasi Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!