Saudações malta! Hoje, venho falar sobre a V7 do Prisma, que saiu há algum tempo, mas, estive testando e vendo como se comporta em relação às versões anteriores e, confesso que a v5 foi uma das melhores que já usei, mas que a V7 trouxe algumas coisas interessantes. Começando pela configuração, na V5 e V6, precisávamos dar um: ``` npx prisma init ``` Desse jeito, inicializávamos o prisma. Porém, na V7, precisamos de usar: ``` npm install prisma tsx @types/pg --save-dev npm install @prisma/client @prisma/adapter-pg dotenv pg ``` Desde a V6 que é necessário ter um output na configuração do Schema, para a saída dos dados gerados, mas, a configuração padrão agora é: output = "../app/generated/prisma" O maior diferencial agora, é que, tem um novo arquivo: prisma.config.ts Este é o arquivo que agora, configura o Prisma. Uma situação em que me deparei, foi ao criar manualmente estes arquivos e, eu criei o prisma.config.ts dentro da pasta "prisma". Infelizmente, ao rodar ```npx prisma migrate dev```, ele não encontrava o arquivo. Daí, descobri que ele lê o arquivo, por default, na raiz do projeto. Outro ponto que descobri, é que para seed, apesar de ainda criarmos o seed.ts dentro da pasta "prisma", agora, o comando seed, não é configurado dentro do package.json, mas sim no prisma.config.ts: ``` import 'dotenv/config' import { defineConfig, env } from 'prisma/config'; export default defineConfig({ schema: 'prisma/schema.prisma', migrations: { path: 'prisma/migrations', seed: `tsx prisma/seed.ts`, // Bem aqui! }, datasource: { url: env('DATABASE_URL'), }, }); ``` Uma nota extremamente importante: para quem usa prisma com Next.Js, deve ter muito cuidado para não usar Turbopack com o prisma V7, pois, existe um erro com o output ao usar o "generate" do prisma. Podem encontrar mais sobre este erro em: https://github.com/vercel/next.js/issues/76497 Uma outra coisa nova que notei, é velocidade: Agora, o prisma deixou de usar Rust! Senti diferença? Senti... mínima, mas senti. Porquê mínima diferença? Por que eu já usava pooling e otimização nas queries, índices e outras práticas para performance. No entanto, eles otimizaram para uma melhor comunicação com o PostgreSQL, o que é muito bom. Para usar o cliente sem Rust (que é opcional): ``` // schema.prisma generator client { provider = "prisma-client-js" // with rust provider = "prisma-client" // rust-free and ESM } ``` Tem muita coisa nova, como: - O cliente gerado pelo "generate" default não é mais dentro do node_modules - Podes criar Databases com npm create db - Usar MCPs Acredito que fiz um artigo bem longo, mas, quis explicar com algum detalhe as novas funcionalidades do Prisma V7. Agradeço pela leitura e, continuem ligados, que tem mais por vir.