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 !
Table of Contents
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.