Laravel'de migration'lar, veritabanı şemalarını kod içinde yönetmenize olanak tanır. Migration'lar, veritabanı tablolarını oluşturmak, değiştirmek veya silmek için kullanılır ve projenizi başka bir ortama taşıdığınızda veritabanınızın tutarlılığını sağlar. İşte Laravel migration'larının temel özellikleri:
-
Migration Oluşturma: Laravel'de bir migration oluşturmak için, terminalde
php artisan make:migration MigrationName
komutunu kullanabilirsiniz. Bu komut,database/migrations
dizininde yeni bir migration dosyası oluşturur.php artisan make:migration create_users_table
-
Migration Metotları: Migration dosyası,
up
vedown
metotlarına sahiptir.up
metodu, bir tabloyu oluşturmak veya bir tabloya sütun eklemek gibi değişiklikleri tanımlar.down
metodu ise,up
metoduyla gerçekleştirilen değişiklikleri geri alır. Örneğin:<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; class CreateUsersTable extends Migration { public function up( ) { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down( ) { Schema::dropIfExists('users'); } }
-
Migration Çalıştırma: Oluşturduğunuz migration'ları veritabanına uygulamak için terminalde
php artisan migrate
komutunu kullanabilirsiniz. Bu komut,up
metodu çalıştırılarak migration'ları uygular.php artisan migrate
-
Migration Geri Alma: Migration'ları geri almak için terminalde
php artisan migrate:rollback
komutunu kullanabilirsiniz. Bu komut,down
metodu çalıştırılarak son yapılan migration'ı geri alır.php artisan migrate:rollback
Migration'lar, veritabanı şemalarını kod içinde yöneterek uygulamanızın veritabanı ile ilgili değişikliklerini izlemenizi sağlar. Bu, projenizi farklı ortamlara taşıdığınızda veritabanınızın tutarlılığını korumanıza yardımcı olur ve ekibinizle birlikte çalışırken veritabanı şemalarınızı senkronize etmenizi sağlar.