EmreKSE
Bu durumun en yaygın nedeni, Laravel’in yapılandırma (config) önbelleklemesidir. Yani projeyi klonladıktan sonra .env dosyasında yaptığınız değişiklikler, eğer yapılandırma önbelleği hâlâ eski ayarları içeriyorsa uygulanmaz. Özellikle aşağıdaki komutlardan birini veya birkaçını çalıştırmamışsanız, önbellekteki ayarlar kullanılmaya devam edecektir:
- php artisan config:clear
- php artisan cache:clear
Bu komutlar, Laravel’in konfigürasyon dosyalarını ve genel önbelleğini temizler, böylece .env dosyasındaki yeni ayarlar okunur.
Ek olarak, Laravel üretim ortamında performansı artırmak amacıyla php artisan config:cache
komutuyla tüm konfigürasyonları tek bir dosyada birleştirir. Bu durumda, .env dosyası artık okunmaz; dolayısıyla klonladığınız projede .env dosyasını güncelleseniz bile eski (önbellekteki) veritabanı ayarları kullanılmaya devam edebilir.
Çözüm Adımları:
Terminali Açın:
Klonladığınız projenin dizininde terminal açın.
Önbelleği Temizleyin:
Aşağıdaki komutları sırasıyla çalıştırın:
php artisan config:clear
php artisan cache:clear
Doğru .env Ayarlarını Kontrol Edin:
Her iki projenin .env dosyasında DB_CONNECTION, DB_HOST, DB_DATABASE, DB_USERNAME ve DB_PASSWORD ayarlarının birbirinden farklı ve doğru olduğundan emin olun.
Geliştirme Ortamında Config:cache Kullanmayın:
Geliştirme sürecinde, konfigürasyon önbelleklemesinden kaçınmak (veya temizlemek) daha yararlı olacaktır.
Bu adımları uyguladıktan sonra, klonladığınız projenin .env dosyasındaki yeni ayarları okuyarak farklı veritabanına bağlandığını görmelisiniz.
Kaynaklar:
(Stack Overflow – Laravel not reading .env changes)
(Andy Carter’ın blogunda config cache ile ilgili açıklamalar)