Php 8 Migrations

Php 8 Migrations

PHP 8 ve Laravel kullanırken Migrations (göçler), veritabanı şemasını sürüm kontrolü altında yönetmek için kullanılan bir mekanizmadır. Migrations, veritabanı tablolarını ve alanlarını oluşturmak, güncellemek veya silmek için yazılan PHP kod parçalarıdır. Bu sayede, bir ekibin farklı üyeleri arasında veritabanı değişikliklerini senkronize etmek kolaylaşır.

1. Migration Nedir?

Migration, Laravel'de veritabanı yapısını tanımlamak ve değiştirmek için kullanılan bir sınıftır. Migrations sayesinde veritabanı yapınızı kolayca oluşturabilir, güncelleyebilir ve geri alabilirsiniz. Migrations, veritabanı şemasını kod olarak tutarak, uygulamanızın geliştirilmesi sırasında veritabanı değişikliklerini takip etmeyi sağlar.

2. Migration Oluşturma

Yeni bir migration dosyası oluşturmak için terminalde aşağıdaki komutu kullanabilirsiniz:

php artisan make:migration create_posts_table

Bu komut, database/migrations dizininde bir migration dosyası oluşturur. Dosya adı, oluşturulan tarih ve saat ile birlikte create_posts_table şeklinde olacaktır.

3. Migration Yapısı

Migration dosyası, up ve down yöntemlerini içerir:

  • up(): Migration çalıştırıldığında yapılacak işlemleri tanımlar (örneğin, tablo oluşturma).
  • down(): Migration geri alındığında yapılacak işlemleri tanımlar (örneğin, tablo silme).

Aşağıda basit bir migration örneği bulunmaktadır:

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; class CreatePostsTable extends Migration { public function up( ) { Schema::create('posts', function (Blueprint $table) { $table->id(); // Otomatik artan ID $table->string('title'); // Başlık $table->text('content'); // İçerik $table->timestamps(); // Oluşturulma ve güncellenme tarihleri }); } public function down( ) { Schema::dropIfExists('posts'); // Tabloyu sil } }

4. Migration Çalıştırma

Oluşturduğunuz migration'ları çalıştırmak için terminalde aşağıdaki komutu kullanabilirsiniz:

php artisan migrate

Bu komut, up metodundaki işlemleri gerçekleştirerek veritabanında belirtilen tabloları oluşturur.

5. Migration Geri Alma

Eğer bir migration'ı geri almak isterseniz, aşağıdaki komutu kullanabilirsiniz:

php artisan migrate:rollback

Bu komut, en son çalıştırılan migration'ı geri alır ve down metodundaki işlemleri gerçekleştirir.

6. Migration Durumunu Kontrol Etme

Geçmişte çalıştırılan migration'ların durumunu görmek için aşağıdaki komutu kullanabilirsiniz:

php artisan migrate:status

Bu komut, hangi migration'ların çalıştığını ve hangi durumlarda olduğunu gösterir.

7. Migration Değiştirme

Eğer mevcut bir migration dosyasını güncellemek istiyorsanız, ilgili migration dosyasını düzenleyebilir ve ardından tekrar migrate komutunu çalıştırabilirsiniz. Ancak, migration dosyasında değişiklik yapmadan önce, mevcut tabloları geri almanız gerekebilir.

8. Migration'da Foreign Key Kısıtlamaları

Migration dosyalarında foreign key kısıtlamaları ekleyerek, tablolar arasında ilişkiler kurabilirsiniz. Örneğin:

Schema::table('posts', function (Blueprint $table) { $table->unsignedBigInteger('user_id')->nullable(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); });

Bu kod, posts tablosuna user_id alanı ekler ve bu alanın users tablosundaki id alanına referans olmasını sağlar.

9. Seeders ve Migrations

Migration'lar genellikle veritabanı yapısını oluşturmak için kullanılırken, Seeders veritabanına başlangıç verileri eklemek için kullanılır. Seeders ile migration'ların birlikte çalışması, veritabanınızı daha işlevsel hale getirir.

Sonuç

Migrations, Laravel ile geliştirme yaparken veritabanı yapısını yönetmek için önemli bir araçtır. Veritabanı şemasını sürüm kontrolü altında tutmak, ekip üyeleri arasında senkronizasyonu sağlamak ve veritabanı değişikliklerini kolayca geri almak için migrations kullanmak oldukça faydalıdır. Laravel’in sunduğu migration sistemi, uygulamanızın geliştirilmesi sırasında veritabanı değişikliklerini daha düzenli ve kontrol edilebilir hale getirir.



Yorum Ekle

Üzerine gel