Veritabanı Göçlerine Giriş
Migration işlemi, veritabanı tablolarını oluşturmak, değiştirmek ya da silmek için kullanılır. Laravel ile veritabanı göçlerini başlatmak ve yönetmek oldukça basittir. Bunun için terminalden birkaç komut girmeniz yeterlidir. İsterseniz hemen başlamak için aşağıdaki komutla yeni bir migration dosyası oluşturabilirsiniz:
php artisan make:migration create_users_table --create=users
Bu komut, `create_users_table` isminde bir migration dosyası oluşturur ve bu dosya içerisinde bir `users` tablosu oluşturmanıza olanak tanır.
Veritabanı Yapılandırması ve Migration Kullanımı
- `up()` Fonksiyonu: Veritabanı değişikliklerinin yapılacağı kısımdır. Bu fonksiyon içerisinde tablo oluşturma, sütun ekleme ya da sütun değiştirme gibi işlemleri yaparsınız.
- `down()` Fonksiyonu: Yaptığınız değişikliklerin geri alındığı kısımdır. Eğer veritabanınızdaki değişiklikleri geri almak isterseniz, `down()` fonksiyonu devreye girer.
Örneğin, bir kullanıcı tablosu oluşturmak istiyorsanız:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
Burada, `up()` fonksiyonu ile `users` tablosu oluşturuluyor ve `down()` fonksiyonu ile tablonun silinmesi sağlanıyor.
Migration ve Seeding İleri Düzey Teknikler
Seeder dosyaları, `database/seeders` dizininde bulunur. Seeder dosyasını oluşturmak için şu komutu kullanabilirsiniz:
php artisan make:seeder UserSeeder
Oluşturduğunuz seeder dosyasına örnek kullanıcı verileri ekleyebilirsiniz:
public function run()
{
\App\Models\User::factory(10)->create(); // 10 kullanıcı oluşturur
}
Bu şekilde, sadece tek bir komutla test verilerinizi kolayca veritabanınıza ekleyebilirsiniz.
Veritabanı İyileştirmeleri ve İleri Düzey Teknikler
1. Veritabanı İndeksleri: Tablolarınıza indeks eklemek, sorgularınızın hızını önemli ölçüde artırabilir. Özellikle büyük veritabanlarında, arama ve sıralama işlemleri için indeks kullanımı çok faydalıdır.
2. Veritabanı İlişkileri: Laravel, Eloquent ORM ile veritabanı ilişkilerini kolayca kurmanıza imkan tanır. İyi bir veritabanı tasarımı, uygulamanızın performansını artırır.
3. Önbellekleme (Caching): Veritabanı sorgularının sıklıkla çalışması gerektiğinde, sorgu sonuçlarını önbelleğe alabilirsiniz. Laravel, önbellek yönetimi konusunda oldukça güçlüdür.
4. Veritabanı Yedeklemeleri: Veritabanı yedeklemeleri, her zaman önemli bir konudur. Laravel ile veritabanı yedeklemeleri almak oldukça kolaydır. Yedekleme işlemini düzenli olarak yapmak, veri kaybı yaşamanızı engeller.