Cara Mengatasi Error Laravel migration: unique key is too long, even if specified

Masalah tersebut sering terjadi saat kita melakukan migrasi database saat deployment ke live server.

Penyebab munclnya error Laravel unique key is too long, even if specified adalah karena string yang terlalu panjang. Kurang lebih sih gitu untuk lebih jelasnya bisa tanya yang master lah ya.

Seperti yang diuraikan dalam panduan Migrasi untuk memperbaiki ini, yang harus Kamu lakukan adalah mengedit file AppServiceProvider.php dan di dalam metode boot, tetapkan panjang string default:

Pada pengaturan default panjang stringnya adalah 255 kita akan rubah menjadi 191.

Pertama buka app\Providers\AppServiceProvider.php

Import use Illuminate\Database\Schema\Builder;

Tambahkan Builder::defaultStringLength(191); pada function boot sehingga kode lengkapnya menjadi

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Database\Schema\Builder; // new
class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Builder::defaultStringLength(191); // new
    }
}
Selesai, silakan lakukan Migrasi Database lagi.

Leave a Reply

Your email address will not be published. Required fields are marked *