Laravel : Error saat menjalankan php artisan migrate (fresh install)

Kali ini saya akan berbagi cara untuk mengatasi error pada saat melakukan proses migrate database di laravel 5.6 di OS Windows

Permasalahan :

Saya mengalami error ini saat saya ingin melakukan migrasi tabel untuk pertama kali kedalam database saya di phpmyadmin. Saya menggunakan OS Windows 10, PHP versi 7.2.7 dan phpmyadmin versi 4.8.2 (MySQL 5.6.39-83.1).

Solusi yang saya lakukan :

  1. Bukalah file AppServiceProvider.php yang terletak pada folder app/Providers di project laravel anda.
  2. Di dalam function boot() tambahkan kode 
  3. Schema::defaultStringLength(191);
  4. Lalu sebelum deklarasi class AppServiceProvider tambahkan kode
  5. use Illuminate\Support\Facades\Schema;
  6. Hapus semua tabel yang sudah ada sebelumnya di database anda.
  7. Jalankan kembali perintah php artisan migrate.
Penjelasan singkat :

Menurut hasil pembahasan yang saya temui di forum, error ini terjadi saat menjalankan laravel menggunakan windows dengan versi MySQL dibawah 5.7.

Selain cara yang saya lakukan diatas, bisa juga dengan melakukan konfigurasi pada file database.php yang terletak didalam folder config, yaitu dengan mengubah line

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

di dalam line

'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],

menjadi

'charset' => 'utf84',
'collation' => 'utf84_unicode_ci',

Menurut keterangan yang saya baca, hal ini disebabkan oleh collation utf8mb4 menggunakan terlalu banyak karakter. Hal inilah yang menjadi penyebab dari error  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes ini.

Comments

Popular Posts