

npm install prisma --save-dev npm install @prisma/client npx prisma init
prisma/ e o arquivo .env para configurar o banco.sudo nano docker-compose.yaml
version: '3.5' services: db: image: postgres container_name: postgres_container volumes: - postgres:/data/postgres environment: POSTGRES_PASSWORD: changepass POSTGRES_USER: changeuser POSTGRES_DB: changename PGDATA: /data/postgres ports: - "5432:5432" networks: - postgres restart: unless-stopped volumes: postgres:
.envDATABASE_URL="postgresql://changeuser:changepass@localhost:5432/changename?schema=public"
⚡ Dica: Prisma funciona com PostgreSQL, MySQL, SQLite, MongoDB e outros!
prisma/schema.prismamodel User { id Int @default(autoincrement()) @id email String @unique name String? posts Post[] } model Post { id Int @default(autoincrement()) @id title String content String? published Boolean? @default(false) author User? @relation(fields: [authorId], references: [id]) authorId Int? }
npx prisma migrate dev --name init
📂 prisma ├── 📁 migrations │ ├── 20201207100915_init │ │ └── migration.sql └── schema.prisma
npm install @prisma/client
📂 meu-projeto-prisma ├── 📁 src │ ├── 📁 database │ │ └── prisma.service.ts │ ├── app.module.ts │ ├── app.controller.ts │ ├── app.service.ts │ └── main.ts ├── .env ├── package.json └── tsconfig.json
import { Injectable, OnModuleInit } from '@nestjs/common'; import { PrismaClient } from '@prisma/client'; @Injectable() export class PrismaService extends PrismaClient implements OnModuleInit { async onModuleInit() { await this.$connect(); } }
UserService:async create(data: { name: string; email: string }) { return this.prisma.user.create({ data }); } async findAll() { return this.prisma.user.findMany(); }
npx prisma studio