Hallo teman-teman ONPHPID, setelah beberapa hari tidak menulis karena sedikit sibuk kali ini ONPHPID akan membahas tentang migrations pada Laravel 5.4. Pada tutorial sebelum-sebelumnya kita sudah belajar Laravel 5.3. O iya, teman-teman tentu sudah tahu bukan kalau Laravel sekarang sudah versi Laravel 5.4 setelah di release pada bulan Januari kemarin. Pertanyaanya, Apakah kita akan langsung belajar Laravel 5.4. Jawabannya TIDAK. Karena apa yang kita pelajari dapat kita gunakan walau kita menggunkakan Laravel 5.4, hanya saja kali ini ONPHPID akan memberikan sedikit cara ketika kita menggunakan laravel 5.4 agar tidak menemui error seperti di bawah. Karena hal ini termasuk penting ketika kita akan melakukan migrate.
Pada Laravel 5.4 ada perubahan dan penambahan tentunya, salah satunya yaitu pada migrations. Jika teman-teman melakukan migrations untuk pertama kali setelah menginstall Laravel tentu akan menemui error seperti di bawah ini :
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter tableusers
add uniqueusers_email_unique
([PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Error di atas disebabkan karena LARAVEL 5.4 membuat perubahan default database character set, dan sekarang utf8mb4
yang meliputi dukungan untuk menyimpan emoji. Ini hanya berpengaruh pada Laravel 5.4 namun jika teman-teman menggunakan MySQL v5.7.7 dan yang lebih tinggi tentu tidak akan menjadi masalah. Begitu juga saat ONPHPID mencoba untuk pertama kali migrations maka error seperti gambar di bawah ini:
lalu bagaimana cara mengatasinya?
Ok, ONPHPID akan memberikan caranya, Silakan buka file AppServiceProvider.php
yang berada di folder app/Providers
kemudian edit method boot()
menjadi seperti ini :
1 2 3 4 5 6 |
// code lain public function boot() { Schema::defaultStringLength(191); } // code lain |
jangan lupa untuk meload Schema Class seperti berikut :
1 |
use Illuminate\Support\Facades\Schema; |
jika sudah maka file AppServiceProvider.php
akan menjadi seperti di bawah ini :
AppServiceProvider.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php namespace App\Providers; use Illuminate\Support\Facades\Schema; use Illuminate\Support\ServiceProvider; 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() { // } } |
jika sudah silakan lakukan migrate ulang, namun jangan lupa untuk merollback ya. Karena meskipun error table tersebut sebenarnya telah di migrate.
jika berhasil maka akan seperti gambar di bawah ini :
nah akhirnya kita dapat mengatasi penyebab error saat migrations di Laravel 5.4.
Baca Juga : Memahami One To Many Eloquent Relationships Pada laravel 5.3 untuk pemula
Sekian dulu tutorial Laravel 5.4 : Mengatasi Error Saat Migrations Pada Laravel 5.4. Jika ada hal yang kurang jelas atau ingin ditanyakan dapat melalui komentar. JANGAN LUPA like FANSPAGE ONPHPID untuk update informasi dan Subscribe Channel ONPHPID Tutorial. Selamat Belajar…