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:
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).
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!
Terima kasih, ini berhasil!

No comments:
Post a Comment