Laravel Migration ve Seeder Kullanımı

Web Doktoru - Laravel Migration ve Seeder Kullanımı

Laravel Migration ve Seeder Kullanımı

İçindekiler

Laravel Migration ve Seeder Kullanımı Veritabanı Yönetimini Kolaylaştıran Araçlar arasında yer alır. Laravel, modern web uygulamaları geliştirirken veritabanı yönetimini kolaylaştıran iki önemli özellik sunar: Migration ve Seeder. Bu araçlar, geliştiricilere veritabanı tablolarını kod ile yönetme ve test verileri ekleme imkanı sağlar. Bu makalede, Laravel’de Migration ve Seeder kullanımını detaylı bir şekilde inceleyecek ve bu araçların nasıl etkili bir şekilde kullanılabileceğini öğreneceksiniz.

Laravel’de Migration ve Seeder Kullanımı


1️⃣ Migration Nedir?

Migration, veritabanı tablolarını kod ile yönetmenizi sağlayan bir sistemdir. Elle SQL sorguları yazmak yerine, Laravel’in sunduğu Migration özelliği ile tablo oluşturabilir, güncelleyebilir veya silebilirsiniz. Bu, özellikle ekip çalışmalarında ve projelerin farklı ortamlara taşınmasında büyük kolaylık sağlar.

Migration’ın Avantajları:

  • Versiyon Kontrolü: Migration dosyaları, veritabanı şemasının versiyonlarını takip etmenizi sağlar.
  • Taşınabilirlik: Farklı geliştirme ortamlarında aynı veritabanı yapısını kolayca oluşturabilirsiniz.
  • Geri Alınabilirlik: Migration’ları geri alarak (rollback) veritabanındaki değişiklikleri geri dönebilirsiniz.

2️⃣ Migration Nasıl Oluşturulur?

Yeni bir Migration oluşturmak için Laravel’in Artisan komut satırı aracını kullanabilirsiniz. Örneğin, posts adında bir tablo oluşturmak için aşağıdaki komutu çalıştırabilirsiniz:

php artisan make:migration create_posts_table

Bu komut, database/migrations dizini içinde create_posts_table.php adında bir dosya oluşturur.


3️⃣ Migration Dosyası Yapısı

Oluşturulan Migration dosyası, iki temel metot içerir: up() ve down().

  • up() Metodu: Tablonun oluşturulmasını veya güncellenmesini sağlar.
  • down() Metodu: Tablonun silinmesini veya değişikliklerin geri alınmasını sağlar (rollback işlemi için).

Örneğin, posts tablosunu oluşturmak için up() metodunu aşağıdaki gibi düzenleyebilirsiniz:

public function up(): void
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

Bu kod, posts adında bir tablo oluşturur ve bu tabloya idtitlecontentcreated_at ve updated_at sütunlarını ekler.


4️⃣ Migration Çalıştırma

Migration’ları veritabanına uygulamak için aşağıdaki Artisan komutunu kullanabilirsiniz:

php artisan migrate

Bu komut, tüm Migration’ları çalıştırarak veritabanında gerekli tabloları oluşturur.

Rollback İşlemi

Eğer bir değişiklik yapmak isterseniz, Migration’ları geri alabilirsiniz:

php artisan migrate:rollback

Bu komut, en son çalıştırılan Migration’ı geri alır.

Tüm Migration’ları Yeniden Çalıştırma

Tüm Migration’ları sıfırlayıp yeniden çalıştırmak için:

php artisan migrate:refresh

Bu komut, tüm Migration’ları geri alır ve yeniden çalıştırır.


5️⃣ Migration ile Tabloda Değişiklik Yapma

Var olan bir tabloya yeni bir sütun eklemek için yeni bir Migration oluşturabilirsiniz. Örneğin, posts tablosuna status adında bir sütun eklemek için:

php artisan make:migration add_status_to_posts_table --table=posts

Bu komut, add_status_to_posts_table.php adında bir Migration dosyası oluşturur. Dosyanın içeriğini aşağıdaki gibi düzenleyebilirsiniz:

public function up(): void
{
    Schema::table('posts', function (Blueprint $table) {
        $table->string('status')->default('draft');
    });
}

public function down(): void
{
    Schema::table('posts', function (Blueprint $table) {
        $table->dropColumn('status');
    });
}

Değişiklikleri veritabanına yansıtmak için:

php artisan migrate

6️⃣ Seeder Nedir?

Seeder, test veya başlangıç verilerini veritabanına eklemek için kullanılan bir araçtır. Özellikle geliştirme aşamasında, uygulamanın farklı bölümlerini test etmek için örnek veriler eklemek oldukça faydalıdır.


7️⃣ Seeder Nasıl Oluşturulur?

Yeni bir Seeder oluşturmak için aşağıdaki Artisan komutunu kullanabilirsiniz:

php artisan make:seeder PostSeeder

Bu komut, database/seeders/PostSeeder.php dosyasını oluşturur.


8️⃣ Seeder Kullanımı

Seeder dosyasını açıp, run() metodunu düzenleyerek test verileri ekleyebilirsiniz. Örneğin, posts tablosuna bir kayıt eklemek için:

public function run(): void
{
    DB::table('posts')->insert([
        'title' => 'Laravel Seeder Kullanımı',
        'content' => 'Seeder ile test verileri oluşturabilirsiniz.',
        'created_at' => now(),
        'updated_at' => now(),
    ]);
}

Seeder’ı çalıştırmak için:

php artisan db:seed --class=PostSeeder

Tüm Seeder’ları çalıştırmak için:

php artisan db:seed

9️⃣ DatabaseSeeder ile Toplu Seeder Çalıştırma

Eğer birden fazla Seeder’ı toplu olarak çalıştırmak istiyorsanız, DatabaseSeeder.php dosyasını kullanabilirsiniz. Örneğin:

public function run(): void
{
    $this->call([
        PostSeeder::class,
        UserSeeder::class,
    ]);
}

Bu sayede, tüm Seeder’ları tek bir komutla çalıştırabilirsiniz:

php artisan db:seed

🔟 Migration ve Seeder’ın SEO’ya Etkisi

Migration ve Seeder’lar doğrudan SEO ile ilişkili değildir. Ancak, dolaylı olarak SEO’ya katkıda bulunabilirler:

  • Veritabanı Yapısının Tutarlılığı: Migration’lar sayesinde veritabanı yapısı tutarlı ve güncel kalır. Bu, uygulamanın performansını artırarak SEO’ya olumlu katkı sağlar.
  • Test Verileri ile Hata Ayıklama: Seeder’lar sayesinde test verileri ekleyerek, uygulamanın farklı senaryolarda nasıl çalıştığını kontrol edebilirsiniz. Bu, hataları önceden tespit etmenizi sağlar ve kullanıcı deneyimini artırır.

Sonuç

Laravel’de Migration ve Seeder kullanımı, veritabanı yönetimini kolaylaştıran ve geliştirme sürecini hızlandıran iki önemli özelliktir. Migration ile veritabanı tablolarını kod ile yönetebilir, Seeder ile test verileri ekleyebilirsiniz. Bu araçlar, özellikle ekip çalışmalarında ve projelerin farklı ortamlara taşınmasında büyük kolaylık sağlar.

Eğer Laravel ile web uygulamaları geliştiriyorsanız, Migration ve Seeder’ları etkili bir şekilde kullanarak veritabanı yönetimini daha verimli hale getirebilirsiniz. 

Picture of Web Doktoru
Web Doktoru
Matematikçi, Adli Bilişim Uzmanı, Bil. Yük. Müh. Full Stack Developer
İlginizi Çekebilir
Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü araçlar sunar. WebSockets, Pusher, Laravel Echo ve Broadcasting gibi teknolojiler

Web Doktoru - Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri gibi ihtiyaçları kolayca karşılamak için güçlü araçlar sunar. Bu yazıda,

Whatsapp ile mesaj göndermek için tıklayın

Telefon ile sadece 09:00 - 18:00 saatleri arası ulaşabilirsiniz.