Skip to content

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.

bash
mkdir prisma-postgres-app
cd prisma-postgres-app
bun init

Instalar dependências do Prisma

Em seguida, instale a CLI do Prisma (prisma), Prisma Client (@prisma/client) e a extensão accelerate como dependências.

bash
bun add -d prisma
bun add @prisma/client @prisma/extension-accelerate

Inicializar 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.

bash
bunx --bun prisma init --db

Isso 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.

prisma
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.

ini
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.

bash
bunx --bun prisma migrate dev --name init
txt
Environment 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 18ms

Gerar 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.

sh
bunx --bun prisma generate

Inicializar 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.

ts
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.

ts
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.

bash
bun run index.ts
txt
Existem 1 usuários no banco de dados.
bash
bun run index.ts
txt
Existem 2 usuários no banco de dados.
bash
bun run index.ts
txt
Existem 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.

Bun by www.bunjs.com.cn edit