Web Doktoru - Laravel Migration ve Seeder Kullanımı
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.
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.
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.
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 id
, title
, content
, created_at
ve updated_at
sütunlarını ekler.
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.
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ı 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.
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
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.
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.
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
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’lar doğrudan SEO ile ilişkili değildir. Ancak, dolaylı olarak SEO’ya katkıda bulunabilirler:
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.
Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü…
Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri…
Laravel, dosya yükleme ve depolama işlemleri için güçlü bir Storage (Dosya Depolama) mekanizması sunar. Bu mekanizma, yerel…
Laravel’de Çoklu Dil (Localization) Kullanımı: Uygulamanızı Küresel Hale Getirin 🌍 Laravel, modern web uygulamaları için…
Laravel’de Test Driven Development (TDD) ve Test Yazımı: Güvenilir ve Sürdürülebilir Kod Geliştirme Laravel, modern…
Laravel’de Scheduler (Zamanlanmış Görevler) Kullanımı: Otomatik İşlemler ve Zaman Yönetimi Laravel, modern web uygulamalarında belirli…