Laravel “Specified key was too long error” Hatası

Laravel’de migration yaparken alınan “Specified key was too long error” hatası için çözümden bahsedeceğim. İşi uzatarak ilk olarak neden kaynaklandığından söz edelim.

Mysql 5.7 ya da eşdeğer MariaDB kullanıyorsanız, karakter setiniz utf8mb4 ise bu hata ile karşılaşırsınız. utf8mb4 ile emojileri veritabanında saklayabiliyoruz.

Migration yaparken tam olarak bu hatayla karşılaşırız;

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Çözüm için ise AppServiceProvider.php dosyasına;

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

ekliyoruz ve problem çözülmüş oluyor. Yarım kalan migration dosyalarınızı migration tablosundan kaldırın. Sağlıklı olarak yeniden migrate edin.

İyi çalışmalar.

Vanilla JS’e Derinlemesine Bakış

Son zamanlarda popülerleşmeye başlayan, Vanilla JS ile ilgili bir yazı hazırlayayım dedim. JQuery, Ember, Angular, Vue, React gibi her güzel şey bir framework’ken neden daha güzel bir JS framework’e ihtiyaç duyulmuş?

Son zamanlarda öyle bir algı oluştu ki, DOM için illa bir framework kullanmak zorundaymışız gibi. Düz JS’i kullanmak köylülükmüş gibi, fakirlik ya da amemelikmiş gibi düşünülmeye zorlanılmışız gibi.

Vanilla JS güzel bir şaka. Javascript’in kendisini framework olarak kaktırıp, güzel Javascript’in gerçekten güzel olduğunu biz mazlumlara anlatmayı yeğlemiş şair.

Özetle;

Vanilla JS diye bir şey yok. Javascript’in kendisi kullanılarak yapılmış kodlamaya deniyor.

Sağlıcakla.