Lo que Aprenderas en Este Tutorial
✓ Configuracion de Prisma
✓ Definicion de esquemas
✓ Migraciones
✓ Operaciones CRUD
✓ Relaciones
✓ Transacciones
Paso 1: Configuracion
npm init -y
npm install prisma @prisma/client
npm install -D typescript ts-node @types/node
npx prisma init
Paso 2: Definicion de Esquema
// prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
createdAt DateTime @default(now())
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
createdAt DateTime @default(now())
}
Paso 3: Migracion
# Crear y ejecutar migracion
npx prisma migrate dev --name init
# Generar Prisma Client
npx prisma generate
# Verificar base de datos
npx prisma studio
Paso 4: Operaciones CRUD
// src/index.ts
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
// Create
const user = await prisma.user.create({
data: {
email: 'alice@example.com',
name: 'Alice',
posts: {
create: { title: 'Mi primera publicacion' }
}
},
include: { posts: true }
});
// Read
const users = await prisma.user.findMany({
include: { posts: true }
});
// Update
const updated = await prisma.user.update({
where: { id: 1 },
data: { name: 'Alice Updated' }
});
// Delete
await prisma.post.delete({
where: { id: 1 }
});
}
main()
.catch(console.error)
.finally(() => prisma.$disconnect());
Paso 5: Consultas Avanzadas
// Filtrado
const posts = await prisma.post.findMany({
where: {
OR: [
{ title: { contains: 'Prisma' } },
{ content: { contains: 'database' } }
],
published: true
},
orderBy: { createdAt: 'desc' },
take: 10,
skip: 0
});
// Transaccion
const [user, post] = await prisma.$transaction([
prisma.user.create({ data: { email: 'bob@example.com' } }),
prisma.post.create({ data: { title: 'New Post', authorId: 1 } })
]);
Resumen
Prisma es un ORM con tipado seguro que proporciona una experiencia de desarrollo consistente desde la definicion de esquemas hasta las consultas.
← Volver a la lista