Greetings folks! Today, I want to talk about Prisma V7 — it came out a little while ago, but I’ve been testing it and checking how it behaves compared to previous versions. And I must admit: V5 was one of the best versions I’ve ever used, but V7 brought some interesting changes. Starting with the setup: in V5 and V6, we had to run: npx prisma init That’s how we initialized Prisma. However, in V7, we now need to use: npm install prisma tsx @types/pg --save-dev npm install @prisma/client @prisma/adapter-pg dotenv pg Since V6, it's been necessary to have an output configuration in the schema for the generated data, but the default configuration is now: output = "../app/generated/prisma" The biggest difference now is the introduction of a new file: prisma.config.ts This file is now responsible for configuring Prisma. One issue I ran into was when I manually created these files, and I placed prisma.config.ts inside the prisma folder. Unfortunately, when running npx prisma migrate dev, Prisma couldn't find the file. That’s when I discovered that, by default, it expects the file to be in the project root. Another point I discovered: for seeding, although we still create seed.ts inside the prisma folder, the seed command is no longer configured inside package.json, but instead inside 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`, // Right here! }, datasource: { url: env('DATABASE_URL'), }, }); An extremely important note: for those using Prisma with Next.js, be very careful not to use Turbopack with Prisma V7, as there's a known issue with the output when running Prisma’s generate. You can read more about this issue here: https://github.com/vercel/next.js/issues/76497 Another new thing I noticed is performance: Prisma has stopped using Rust! Did I feel the difference? I did… a minimal one, but yes. Why minimal? Because I was already using pooling, query optimization, indexes, and other best practices for performance. Still, they improved the communication layer with PostgreSQL, which is great. To use the Rust-free client (optional): // schema.prisma generator client { provider = "prisma-client-js" // with rust provider = "prisma-client" // rust-free and ESM } There are many new features, such as: The client generated by generate is no longer stored inside node_modules You can create databases using npm create db Support for MCPs I think this turned into quite a long article, but I wanted to explain the new Prisma V7 features with some detail. Thanks for reading, and stay tuned — there’s more coming soon!