Node.JS

TypeORM Migrationlar

Herkese merhaba, NodeJS yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda TypeORM ile migration yazmayı anlatacağım. Hadi başlayalım !

TypeORM, veritabanı değişikliklerini yönetmek için migration’lar kullanır. Migration’lar, veritabanı tablolarında yapılan değişiklikleri (örneğin yeni bir tablo veya bir sütun eklemek) takip etmenize ve uygulamanın farklı sürümleri arasında veritabanı şemasını güncellemenize olanak tanır.

Bu makalede, TypeORM kullanarak migration’lar oluşturma, uygulama ve geri alma işlemleri yapma işlemlerini örneklerle göstereceğim.

Migration Oluşturma

Migration’lar, TypeORM CLI (command line interface) kullanılarak oluşturulabilir. TypeORM CLI, veritabanı işlemlerini kolaylaştıran bir araçtır ve Node.js ile yazılmıştır.

TypeORM CLI’yı yüklemek için öncelikle aşağıdaki komutu çalıştırın:

npm install typeorm --save-dev

Daha sonra, migration oluşturmak için aşağıdaki komutu çalıştırabilirsiniz:

typeorm migration:create -n MigrationAdi

Bu komut, yeni bir migration dosyası oluşturur. -n seçeneği, migration dosyasına bir isim vermenizi sağlar.

Migration dosyaları, src/migrations klasöründe saklanır ve TypeScript kodu olarak yazılabilir. Migration dosyaları, MigrationInterface arayüzünü uygulayan bir sınıf içermelidir. Aşağıdaki örnek, yeni bir users tablosu oluşturan bir migration dosyasıdır:

import { MigrationInterface, QueryRunner, Table } from "typeorm";

export class CreateUsers1618251918824 implements MigrationInterface {
  public async up(queryRunner: QueryRunner) {
    await queryRunner.createTable(
      new Table({
        name: "users",
        columns: [
          {
            name: "id",
            type: "int",
            isPrimary: true,
            isGenerated: true,
            generationStrategy: "increment",
          },
          {
            name: "username",
            type: "varchar",
          },
          {
            name: "email",
            type: "varchar",
          },
          {
            name: "password",
            type: "varchar",
          },
        ],
      })
    );
  }

  public async down(queryRunner: QueryRunner) {
    await queryRunner.dropTable("users");
  }
}

Bu migration dosyası, up ve down yöntemlerini içerir. up yöntemi, migration’ın uygulanmasını sağlayan kodu içerir. Bu örnekte, users tablosunu oluşturmak için createTable yöntemi kullanılmaktadır. down yöntemi ise migration’ın geri alınmasını sağlayan kodu içerir. Bu örnekte, users tablosunu kaldırmak için dropTable yöntemi kullanılmaktadır.

Migration Uygulama

Migration’ları uygulamak için TypeORM CLI kullanabilirsiniz. Aşağıdaki komut, tüm migration’ları uygulamak için kullanılır:

typeorm migration:run

Tek bir migration’ı uygulamak için ise aşağıdaki komutu kullanabilirsiniz:

typeorm migration:run -n MigrationAdi

Bu komut, MigrationAdi olarak adlandırılan migration’ı uygular.

Migration’ları uygularken, –dry-run seçeneğini kullanarak uygulanacak değişiklikleri önizleyebilirsiniz:

typeorm migration:run --dry-run

Migration Geri Alma

Migration’ları geri almak için TypeORM CLI kullanabilirsiniz. Aşağıdaki komut, en son uygulanan migration’ı geri alır:

typeorm migration:revert

Belirli bir migration’ı geri almak için ise aşağıdaki komutu kullanabilirsiniz:

typeorm migration:revert -n MigrationAdi

Bu komut, MigrationAdi olarak adlandırılan migration’ı geri alır.

Migration’ları geri alırken de –dry-run seçeneğini kullanarak geri alınacak değişiklikleri önizleyebilirsiniz:

typeorm migration:revert --dry-run

Sonuç

Bu makalede, TypeORM kullanarak migration’lar oluşturma, uygulama ve geri alma işlemlerini örneklerle gösterdim. Migration’lar, uygulamanızdaki veritabanı tablolarının değişikliklerini takip etmenizi sağlar ve farklı sürümler arasında veritabanı şemasını güncellemenizi kolaylaştırır.

TypeORM CLI, migration’ları oluşturmak, uygulamak ve geri almak için kullanabileceğiniz bir araçtır. Ayrıca, migration’ları manuel olarak da yazabilirsiniz.

Migration’lar, uygulamanızdaki veritabanı tablolarının yönetimini kolaylaştırırken aynı zamanda veritabanınızda oluşabilecek hataları da minimize eder. Bu nedenle, uygulamanızda veritabanı kullanıyorsanız, migration’ları kullanmanızı öneririm.

Evet TypeORM ile migration yazma bu şekilde yapılmakta. Tüm NodeJS yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu