NOTE
**Nota** — No momento, o Prisma precisa que o Node.js esteja instalado para executar certo código de geração. Certifique-se de que o Node.js esteja instalado no ambiente onde você executa comandos `bunx prisma`.Criar um novo projeto
Primeiro, crie um diretório e inicialize-o com bun init.
mkdir prisma-postgres-app
cd prisma-postgres-app
bun initInstalar dependências do Prisma
Em seguida, instale a CLI do Prisma (prisma), Prisma Client (@prisma/client) e a extensão accelerate como dependências.
bun add -d prisma
bun add @prisma/client @prisma/extension-accelerateInicializar Prisma com PostgreSQL
Usaremos a CLI do Prisma com bunx para inicializar nosso schema e diretório de migração. Usaremos PostgreSQL como nosso banco de dados.
bunx --bun prisma init --dbIsso cria um schema básico. Precisamos atualizá-lo para usar o novo cliente sem Rust com otimização Bun. Abra prisma/schema.prisma e modifique o bloco do generator, depois adicione um modelo simples 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 conexão com o banco de dados
Configure a URL do seu banco de dados Postgres no arquivo .env.
DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"Criar e executar migração do banco de dados
Em seguida, gere e execute a migração inicial.
Isso gerará um arquivo de migração .sql em prisma/migrations e executará a migração em seu banco de dados 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 18msGerar Prisma Client
Como indicado na saída, o Prisma regenera nosso Prisma client sempre que executamos uma nova migração. O client fornece uma API totalmente tipada para ler e gravar em nosso banco de dados. Você pode regenerar manualmente o client com a CLI do Prisma.
bunx --bun prisma generateInicializar Prisma Client com Accelerate
Agora precisamos criar uma instância do Prisma client. Crie um novo arquivo prisma/db.ts para inicializar o PrismaClient com o adaptador Postgres.
import { PrismaClient } from "./generated/client";
import { withAccelerate } from '@prisma/extension-accelerate'
export const prisma = new PrismaClient().$extends(withAccelerate())Criar um script de teste
Vamos escrever um script simples para criar um novo usuário e depois contar o número de usuários no banco de dados.
import { prisma } from "./prisma/db";
// criar um novo usuário
await prisma.user.create({
data: {
name: "John Dough",
email: `john-${Math.random()}@example.com`,
},
});
// contar o número de usuários
const count = await prisma.user.count();
console.log(`Existem ${count} usuários no banco de dados.`);Executar e testar a aplicação
Vamos executar este script com bun run. Cada vez que executamos, um novo usuário é criado.
bun run index.tsExistem 1 usuários no banco de dados.bun run index.tsExistem 2 usuários no banco de dados.bun run index.tsExistem 3 usuários no banco de dados.É isso! Agora que você configurou o Prisma Postgres usando Bun, recomendamos consultar a documentação oficial do Prisma Postgres à medida que continua a desenvolver sua aplicação.