NOTE
**Nota** — En este momento Prisma necesita que Node.js esté instalado para ejecutar cierto código de generación. Asegúrate de que Node.js esté instalado en el entorno donde ejecutas comandos `bunx prisma`.Crear un nuevo proyecto
Primero, crea un directorio e inicialízalo con bun init.
mkdir prisma-postgres-app
cd prisma-postgres-app
bun initInstalar dependencias de Prisma
Luego instala el CLI de Prisma (prisma), Prisma Client (@prisma/client), y la extensión accelerate como dependencias.
bun add -d prisma
bun add @prisma/client @prisma/extension-accelerateInicializar Prisma con PostgreSQL
Usaremos el CLI de Prisma con bunx para inicializar nuestro esquema y directorio de migraciones. Usaremos PostgreSQL como nuestra base de datos.
bunx --bun prisma init --dbEsto crea un esquema básico. Necesitamos actualizarlo para usar el nuevo cliente sin Rust con optimización de Bun. Abre prisma/schema.prisma y modifica el bloque del generador, luego agrega un modelo simple User.
generator client {
provider = "prisma-client"
output = "./generated"
engineType = "client"
runtime = "bun"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
} Configurar conexión a la base de datos
Configura la URL de tu base de datos Postgres en el archivo .env.
DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"Crear y ejecutar migración de base de datos
Luego genera y ejecuta la migración inicial.
Esto creará un archivo de migración .sql en prisma/migrations, y ejecutará la migración contra tu base de datos Postgres.
bunx --bun prisma migrate dev --name initEnvironment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": PostgreSQL database "mydb", schema "public" at "localhost:5432"
Applying migration `20250114141233_init`
The following migration(s) have been created and applied from new schema changes:
prisma/migrations/
└─ 20250114141233_init/
└─ migration.sql
Your database is now in sync with your schema.
✔ Generated Prisma Client (6.17.1) to ./generated in 18msGenerar Prisma Client
Como se indica en la salida, Prisma vuelve a generar nuestro Prisma client cada vez que ejecutamos una nueva migración. El cliente proporciona una API completamente tipificada para leer y escribir en nuestra base de datos. Puedes regenerar manualmente el cliente con el CLI de Prisma.
bunx --bun prisma generateInicializar Prisma Client con Accelerate
Ahora necesitamos crear una instancia de Prisma client. Crea un nuevo archivo prisma/db.ts para inicializar el PrismaClient con el adaptador Postgres.
import { PrismaClient } from "./generated/client";
import { withAccelerate } from '@prisma/extension-accelerate'
export const prisma = new PrismaClient().$extends(withAccelerate())Crear un script de prueba
Escribamos un script simple para crear un nuevo usuario, luego contar el número de usuarios en la base de datos.
import { prisma } from "./prisma/db";
// crear un nuevo usuario
await prisma.user.create({
data: {
name: "John Dough",
email: `john-${Math.random()}@example.com`,
},
});
// contar el número de usuarios
const count = await prisma.user.count();
console.log(`Hay ${count} usuarios en la base de datos.`);Ejecutar y probar la aplicación
Ejecutemos este script con bun run. Cada vez que lo ejecutamos, se crea un nuevo usuario.
bun run index.tsHay 1 usuarios en la base de datos.bun run index.tsHay 2 usuarios en la base de datos.bun run index.tsHay 3 usuarios en la base de datos.¡Eso es todo! Ahora que has configurado Prisma Postgres usando Bun, recomendamos consultar la documentación oficial de Prisma Postgres a medida que continúas desarrollando tu aplicación.