Ikhwan Saputera

Setiap Waktu adalah Belajar, Setiap Tempat adalah Sekolah, Setiap Orang adalah Guru

Tuesday, July 16, 2019

Laravel, Cara Mengatasi Error 1071


Terkadang pada saat melakukan migrasi kita menemukan kesalahan error 1071 ini saat, bahkan untuk pengguna yang dihasilkan tabel dari make: fitur auth :

Bebera Solusi diantaranya :
1) untuk memperbaikinya adalah dengan menentukan panjang kolom secara manual pada kode.
Anda perlu mengedit file:

app/Providers/AppServiceProvider.php 

Kemudian tambahakan baris berikut :

use Illuminate\Support\Facades\Schema;
dan 
Schema::defaultStringLength(191);
 
lengkapnya seperti ini :
 

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}
 
2) Ini mungkin bukan yang ideal, tetapi jika Anda tidak terlalu berkepentingan dengan utf8mb4 Anda dapat masuk  ke file config / database.php Anda dan ganti charset dan collation ke utf8 :

'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
 
menjadi

'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
 
 
Ini terjadi karena utf8mb4 menggunakan 4 byte per karakter, dan kolom email memiliki panjang 255 karakter yang lebih besar dari batas 767 byte. 255 x 4 bytes = 1020b.

Untuk memperbaikinya, panjang kolom email paling banyak 191. 191 x 4 byte = 764b. (seperti cara yang pertama).

3) Konfigurasikan basis data Anda untuk mengaktifkan innodb_large_prefix. Mungkin mengharuskan Anda untuk mulai menggunakan innodb_file_format Barracuda baru (yang mysql gunakan sebagai default sekarang).

Terima kasih, ini berhasil!

No comments:

Post a Comment