Owning the Code
Prerequisites
Section titled “Prerequisites”Follow the Prerequisites to set up Prisma in your project.
Owning the Code
Section titled “Owning the Code”If you prefer to manually integrate Prisma without an additional library, you can create your own PrismaService.
-
Create Files
Create
src/prisma/directory withprisma.module.tsandprisma.service.ts.Directorysrc
Directoryprisma
- prisma.module.ts
- prisma.service.ts
-
Prisma Service
Add the following code to
src/prisma/prisma.service.ts:src/prisma/prisma.service.ts import { Injectable } from '@nestjs/common';import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3';import { PrismaClient } from '../generated/prisma/client';@Injectable()export class PrismaService extends PrismaClient {constructor() {const adapter = new PrismaBetterSqlite3({url: process.env.DATABASE_URL!,});super({ adapter });}} -
Prisma Module
Add the following code to
src/prisma/prisma.module.ts:src/prisma/prisma.module.ts import { Global, Module } from '@nestjs/common';import { PrismaService } from './prisma.service';@Global()@Module({providers: [PrismaService],exports: [PrismaService],})export class PrismaModule {}And import
PrismaModuleinAppModule.src/app.module.ts import { Module } from '@nestjs/common';import { PrismaModule } from './prisma/prisma.module';@Module({imports: [PrismaModule],})export class AppModule {} -
Usage
Inject
PrismaServiceinto your controllers or services.src/app.service.ts @Injectable()export class AppService {constructor(private prisma: PrismaService) {}users() {// access prisma.* for your queriesreturn this.prisma.user.findMany();}}