Bagaimana untuk Membetulkan Ralat \'Kunci Unik Terlalu Panjang\' dalam Migrasi Laravel?

Linda Hamilton
Lepaskan: 2024-10-30 04:07:02
asal
928 orang telah melayarinya

How to Fix the

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:

  • Dalam AppServiceProvider. php, tambah kod berikut dalam kaedah boot():
<code class="php">use Illuminate\Database\Schema\Builder;

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

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>
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!