NOTE
**Nota** — O sistema de carregamento dinâmico de subcomandos do Prisma atualmente requer npm instalado junto com o Bun. Isso afeta certos comandos CLI como `prisma init`, `prisma migrate`, etc. O código gerado funciona perfeitamente com Bun usando o novo generator `prisma-client`.Criar um novo projeto
Prisma funciona perfeitamente com Bun. Primeiro, crie um diretório e inicialize-o com bun init.
mkdir prisma-app
cd prisma-app
bun initInstalar dependências do Prisma
Em seguida, instale a CLI do Prisma (prisma), Prisma Client (@prisma/client) e o adaptador LibSQL como dependências.
bun add -d prisma
bun add @prisma/client @prisma/adapter-libsqlInicializar Prisma com SQLite
Usaremos a CLI do Prisma com bunx para inicializar nosso schema e diretório de migração. Para simplificar, usaremos um banco de dados SQLite em memória.
bunx --bun prisma init --datasource-provider sqliteIsso 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 = "sqlite"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}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, criará uma nova instância SQLite e executará a migração na nova instância.
bunx --bun prisma migrate dev --name initEnvironment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database "dev.db" at "file:./dev.db"
SQLite database dev.db created at file:./dev.db
Applying migration `20251014141233_init`
The following migration(s) have been created and applied from new schema changes:
prisma/migrations/
└─ 20251014141233_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 LibSQL
Agora precisamos criar uma instância do Prisma client. Crie um novo arquivo prisma/db.ts para inicializar o PrismaClient com o adaptador LibSQL.
import { PrismaClient } from "./generated/client";
import { PrismaLibSQL } from "@prisma/adapter-libsql";
const adapter = new PrismaLibSQL({ url: process.env.DATABASE_URL || "" });
export const prisma = new PrismaClient({ adapter });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.tsCreated john-0.12802932895402364@example.com
Existem 1 usuários no banco de dados.bun run index.tsCreated john-0.8671308799782803@example.com
Existem 2 usuários no banco de dados.bun run index.tsCreated john-0.4465968383115295@example.com
Existem 3 usuários no banco de dados.É isso! Agora que você configurou o Prisma usando Bun, recomendamos consultar a documentação oficial do Prisma à medida que continua a desenvolver sua aplicação.