Prisma ORM ile NestJS Entegrasyonu Adım Adım


Prisma ORM ile NestJS Entegrasyonu Adım Adım

Giriş: NestJS'te Prisma ORM Kullanımının Önemi

Backend geliştirmede veritabanı işlemlerini kolaylaştıran ve tip güvenliğini artıran Prisma ORM, modern TypeScript tabanlı projelerde sıkça tercih edilmektedir. NestJS ise modüler yapısı ve sağlam mimarisiyle, Node.js uygulama geliştirme süreçlerini ileriye taşıyor. Bu iki güçlü teknolojinin bir araya gelmesiyle, hem hızlı hem de bakım maliyeti düşük, güvenilir projeler geliştirilebilir. "Prisma ORM ile NestJS entegrasyonu" yapmak, geliştiricilere büyük esneklik ve verimlilik sağlar. Bu makalede, adım adım Prisma ORM'i NestJS projenize nasıl entegre edebileceğinizi ele alacağız.

Prisma ORM ile NestJS Entegrasyonu Kurulumu

Gereksinimler ve Kurulum

İlk olarak proje dizininizde NestJS ve Prisma ORM paketlerinin kurulu olduğundan emin olmalısınız. Prisma'yı projenize entegre etmek için aşağıdaki komutları kullanabilirsiniz:

npm install prisma --save-dev
npm install @prisma/client
npx prisma init

Bu işlemlerin ardından, prisma klasörü içinde schema.prisma dosyası oluşacaktır. İçerisinde veritabanınızı ve tablolarınızı tanımlayabilirsiniz.

Prisma ORM ile Model Tanımlama ve Migration

Örnek olarak bir User modeli ekleyelim:

model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  name      String?
  createdAt DateTime @default(now())
}

Migration komutu ile veritabanınızı oluşturun:

npx prisma migrate dev --name init

NestJS İçinde Prisma'nın Kullanılması

NestJS'de Prisma client'ı servis katmanında kullanmak için aşağıdaki örnek kodu ekleyebilirsiniz:

import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';

@Injectable()
export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
  async onModuleInit() {
    await this.$connect();
  }

  async onModuleDestroy() {
    await this.$disconnect();
  }
}

Ardından bu servisi AppModule'e sağlayarak projede kullanabilirsiniz:

import { Module } from '@nestjs/common';
import { PrismaService } from './prisma.service';

@Module({
  providers: [PrismaService],
  exports: [PrismaService],
})
export class PrismaModule {}

Artık PrismaService üzerinden NestJS uygulamanızda tip güvenli veritabanı işlemleri gerçekleştirebilirsiniz.

Sonuç: Sağlam Bir Entegrasyon İle Modern Projeler

Prisma ORM ile NestJS entegrasyonu, modern web uygulamaları geliştirme süreçlerinde büyük avantajlar sunar. Hem Prisma'nın tip güvenliği ve migration yönetimi, hem de NestJS'in modüler yapısı birleştiğinde, geliştirme süreçleri daha hızlı ve sorunsuz ilerler. Bu adımları takip ederek, projelerinizde güçlü bir altyapı oluşturabilir ve ölçeklenebilir uygulamalar geliştirebilirsiniz.