diff --git a/apps/site/content/changelog/2024-03-13.mdx b/apps/site/content/changelog/2024-03-13.mdx new file mode 100644 index 0000000000..775ec6d3b5 --- /dev/null +++ b/apps/site/content/changelog/2024-03-13.mdx @@ -0,0 +1,79 @@ +--- +title: "Prisma ORM v5.11.0: Pulse reaches General Availability" +date: "2024-03-13" +version: "v5.11.0" +slug: "2024-03-13" +headline: "Prisma ORM v5.11.0: Pulse reaches General Availability" +tags: + - "Prisma ORM" + - "Pulse" +canonical: "/changelog#log2024-03-13" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.11.0: Pulse reaches General Availability + +We're thrilled to announce that [Pulse](https://www.prisma.io/data-platform/pulse) has reached General Availability! This marks a significant milestone in our journey to redefine how developers interact with database-event driven compute. + +Pulse is managed database-event infrastructure that **simplifies database-event driven compute**, making it easy to power real-time functionality, like chat, notifications, data broadcast, and more. + +Pricing? Start for free with our usage-based pricing, designed to scale flexibly with your project. + +**šŸ‘‰ Check out our announcement** [**blog post**](https://www.prisma.io/blog/prisma-pulse-in-general-availability) and [documentation](https://www.prisma.io/docs/pulse/) to learn more and get started. + +![blog-pulse-GA 11.png](/changelog/image-1c0bd6e424915af7872c687c800eeebaacf23e5c-1266x711-png-blog-pulse-GA-11.png) + +## Introducing Platform Environments + +Platform Environments is a new feature of the Prisma Data Platform that **lets users create different setups within one project**. This helps smoothen out the app development process, from testing to going live. + +Also, now you can access the Prisma Data Platform using the Prisma CLI, making it easier to manage your resources and workflow (currently in Early Access). + +**šŸ‘‰ Learn more** in our [blog post](https://www.prisma.io/blog/introducing-platform-environments), and take it for a spin. + +## Prisma ORM Edge Functions Support in Preview + +Prisma ORM now supports edge functions, allowing developers to access their databases using Prisma ORM from platforms such as **Vercel Edge Functions, Vercel Edge Middleware, Cloudflare Workers, and Cloudflare Pages**. + +Edge functions improve app performance by reducing request latency and improving response times. + +![blog-orm-edge-preview.svg](/changelog/image-d5c2d5f06095314aeceda56c7bd867e5859e468f-844x474-svg-blog-orm-edge-preview.svg) + +With the release of Prisma v5.11.0, developers can now use Prisma ORM with their favorite Node.js database drivers in edge functions, and the query engine's size has been reduced to fit the limited runtime environment. + +If you want to understand what this exciting functionality brings as a whole, take a look at our [blog post](https://www.prisma.io/blog/prisma-orm-support-for-edge-functions-is-now-in-preview) and go [try it](https://www.prisma.io/docs/orm/prisma-client/deployment/edge/overview). + +**šŸ‘‰** Share your feedback with us via [Twitter](https://twitter.com/prisma) or [Discord](https://pris.ly/discord) + +## Performance improvements in nestedĀ `create`Ā operations + +With Prisma ORM, you can create multiple new records inĀ nestedĀ queries, for example: + +![nested-create.png](/changelog/image-a1d1eef46c8bd17faf4c3174f087c2a479f98649-1328x570-png-nested-create.png) + +In previous versions, Prisma ORM would translate this into multiple SQLĀ `INSERT`Ā queries, each requiring its own roundtrip to the database. As of this release, these nestedĀ `create`Ā queries are optimized and theĀ `INSERT`Ā queries are sent to the databaseĀ *in bulk*Ā in a single roundtrip. + +**šŸ‘‰ Read more** in our [5.11.0 release notes](https://github.com/prisma/prisma/releases/tag/5.11.0). + +## Join the Prisma Partner Network + +At Prisma, we deeply value the talented creators, educators, and builders in our community and we’ve long wanted to reward their contributions. + +We’re excited to launch the [**Prisma Partner Network**](https://www.prisma.io/partners)Ā with tailored opportunities for affiliates, tech partners, and resellers. + +**šŸ‘‰ [prisma.io/partners](https://www.prisma.io/partners)** + +## Made with Prisma + +In our real-world interview series, we talk with founders who developed OSS projects using Prisma. Explore our recent chats: + +šŸŽ„ [**Umami - The open source Google Analytics alternative**](https://www.youtube.com/watch?v=M6xryb2YFdo) + +Did you ever feel that Google Analytics is too bloated and that its UI and workflows are too complex? Discover how Umami offers a simple yet powerful alternative analytics tool. + +šŸŽ„ [**Dub.co: Aiming for a billion with Prisma**](https://www.youtube.com/watch?v=jC22fjRIeZ4) + +Steven Tey shares his journey from leaving Vercel to launching his startup. Learn how [Dub.co](https://dub.co) began as a passion project, its technology stack, and an in-depth look at its codebase. diff --git a/apps/site/content/changelog/2024-04-03.mdx b/apps/site/content/changelog/2024-04-03.mdx new file mode 100644 index 0000000000..cda1ec4f48 --- /dev/null +++ b/apps/site/content/changelog/2024-04-03.mdx @@ -0,0 +1,60 @@ +--- +title: "Prisma ORM v5.12.0: Cloudflare D1 in Preview" +date: "2024-04-03" +version: "v5.12.0" +slug: "2024-04-03" +headline: "Prisma ORM v5.12.0: Cloudflare D1 in Preview" +tags: + - "Prisma ORM" + - "Pulse" + - "Accelerate" +canonical: "/changelog#log2024-04-03" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.12.0: Cloudflare D1 in Preview + +Exciting news! **5.12.0** release brings Preview support forĀ [Cloudflare D1](https://developers.cloudflare.com/d1/)Ā with Prisma ORM 🄳 + +![blog-d1Launch@1.png](/changelog/image-66fc05379af15d65fd3dd6d792c9a575db648895-844x474-png-blog-d1Launch-1.png) + +D1 is Cloudflare's native serverless database and was initially launched in 2022. It's based on SQLite and can be used when deploying applications with Cloudflare. Cloudflare has recently [announced](https://blog.cloudflare.com/making-full-stack-easier-d1-ga-hyperdrive-queues) launching D1 in GA and we couldn't be happier to be adding support and working with them on this new milestone. + +Read more in our latest [blog post](https://www.prisma.io/blog/build-applications-at-the-edge-with-prisma-orm-and-cloudflare-d1-preview). + +## Implementing `createMany()` for SQLite + +Bringing support forĀ `createMany()`Ā in SQLite has been aĀ [long-awaited and highly requested feature](https://github.com/prisma/prisma/issues/10710) ⭐ + +`createMany()`Ā is a method on Prisma Client, released back in versionĀ [2.16.0](https://github.com/prisma/prisma/releases/tag/2.16.0), that lets you insert multiple records into your database at once. This can be really useful when seeding your database or inserting bulk data. + +Read more in our latest [release notes](https://github.com/prisma/prisma/releases/tag/5.12.0). + +## Platform Console Updates + +We have refined our subscription management for a better UX experience. + +Here are some cool new additions and improvements: + +• We've added support for more payment methods and you can now manage your Tax Ids + +• You can now see your invoice history and download past invoices. + +Try it out at [console.prisma.io](https://console.prisma.io/login) + +![image.png](/changelog/image-4844dfbf758490d60359d55f99e0df65cdbd1dfa-2482x470-png-image.png) + +**šŸ“š Documentation** + +• Improved our [getting started docs](https://www.prisma.io/docs/pulse/database-setup/railway) for Prisma Pulse and Railway + +• Improved our [troubleshooting guide](https://www.prisma.io/docs/accelerate/troubleshoot) for Prisma Accelerate, so you can more easily resolve common issues you might run into. + +## Stay in the Loop šŸ” + +• We’ll be at [Epic Web Conference](https://www.epicweb.dev/conf) on April 11th, find us if you’re there! + +• Plus, you can now follow our updates on our brand new [WhatsApp channel](http://pris.ly/whatsapp). Join and get the Changelog news delivered straight to you. diff --git a/apps/site/content/changelog/2024-04-25.mdx b/apps/site/content/changelog/2024-04-25.mdx new file mode 100644 index 0000000000..ecb17b597b --- /dev/null +++ b/apps/site/content/changelog/2024-04-25.mdx @@ -0,0 +1,43 @@ +--- +title: "Prisma ORM v5.13.0: Static IP support for Prisma Accelerate" +date: "2024-04-25" +version: "v5.13.0" +slug: "2024-04-25" +headline: "Prisma ORM v5.13.0: Static IP support for Prisma Accelerate" +tags: + - "Accelerate" + - "Prisma ORM" +canonical: "/changelog#log2024-04-25" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.13.0: Static IP support for Prisma Accelerate + +[Prisma Accelerate](https://www.prisma.io/data-platform/accelerate) introduces Static IP support, enabling secure connections to your database with predictable IPs for controlled access and minimized exposure. This allows connections from Accelerate to databases requiring trusted IP access. + +![hero-firewall-teal@1.5x.png](/changelog/image-9a5f27696242c051a689abed3d4b7099a8145301-1200x674-png-hero-firewall-teal-1.5x.png) + +Learn more in our [blog post](https://www.prisma.io/blog/accelerate-static-ip-support), and try it out. + +## `omit` Fields From Prisma Client Queries (In Preview) + +We’re excited to announce Preview support for the `omit` option within the Prisma Client query options. The [highly-requested](https://github.com/prisma/prisma/issues/5042) `omit` feature now allows you to exclude fields that you don’t want to retrieve from the database on a **per-query basis**. + +Here is an example of usingĀ `omit`: + +![omit-code-example.png](/changelog/image-d524983761b9b4504198b546eaea9162ea0b4b97-1040x540-png-omit-code-example.png) + +Many users have requested a global implementation ofĀ `omit`. This request will be accommodated in the future. In the meantime, you can follow the issueĀ [here](https://github.com/prisma/prisma/issues/5042). + +Read more in our latest [release notes](https://github.com/prisma/prisma/releases/tag/5.13.0) + +## Doc Updates + +The same docs that you know and love, but now built with **Docusaurus**! šŸ¦– + +šŸ‘‰Ā Enjoy an improved dark/light mode, search, layout, and Kapa AI experience. + +Visit [our Docs](https://www.prisma.io/docs) or peek under the hood at [https://github.com/prisma/docs](https://github.com/prisma/docs) diff --git a/apps/site/content/changelog/2024-05-15.mdx b/apps/site/content/changelog/2024-05-15.mdx new file mode 100644 index 0000000000..04cc46197b --- /dev/null +++ b/apps/site/content/changelog/2024-05-15.mdx @@ -0,0 +1,69 @@ +--- +title: "Prisma ORM v5.14.0: Prisma Optimize and createManyAndReturn" +date: "2024-05-15" +version: "v5.14.0" +slug: "2024-05-15" +headline: "Prisma ORM v5.14.0: Prisma Optimize and createManyAndReturn" +tags: + - "Prisma ORM" + - "Optimize" +canonical: "/changelog#log2024-05-15" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.14.0: Prisma Optimize and createManyAndReturn + +Ever wondered what SQL the Prisma ORM generates under the hood? Want to understand the performance of your app and deliver a better and faster experience for your users? With [Prisma Optimize](https://www.npmjs.com/package/@prisma/extension-optimize) you can! + +![changelog-optimize.png](/changelog/image-d662ff0fc23bcf0134f8ffea26db749bd670c6d1-844x474-png-changelog-optimize.png) + +šŸŽ„ [Watch our video walkthrough](https://www.youtube.com/watch?v=gWROOjjEiM0) using dub.co as a case study. + +Read [the announcement blog post](https://www.prisma.io/blog/prisma-optimize-early-access) for instructions on how to get started and optimize your own application. + +## Introducing new Prisma client query: `createManyAndReturn()` + +In our 5.14.0 release, we made available a new, top-level Prisma Client query: `createManyAndReturn()`. It works similarly to `createMany()` but uses a `RETURNING` clause in the SQL query to retrieve the records that were just created. + +Here’s an example of creating multiple posts and then immediately returning those posts. + +![Code export (1).png](/changelog/image-5fc540292aa61c9d17742aa50eee4a6bf9aef81d-1040x522-png-Code-export-1-.png) + +Read more in our [release notes](https://github.com/prisma/prisma/releases/tag/5.14.0) + +## MongoDB performance improvements + +Previously, Prisma ORM suffered from performance issues when using theĀ `in`Ā operator or when including related models in queries against a MongoDB database. + +With 5.14.0, Prisma ORM now rewrites queries to use a combination ofĀ `$or`Ā andĀ `$eq`Ā operators, leading to dramatic performance increases for queries that includeĀ `in`Ā operators or relation loading. + +See the closed public issues in our [release notes](https://github.com/prisma/prisma/releases/tag/5.14.0). + +## Prisma ORM Benchmark + +Curious to see how Prisma ORM performs with popular DB providers? + +We’ve worked with Vercel to add ORMs to their open-source database latency benchmarks. + +šŸš€ [Run the test and see for yourself!](https://db-latency.vercel.app) + +## Documentation Updates + +Explore [Pulse](https://www.prisma.io/data-platform/pulse)’s features and use cases in our [updated documentation](https://www.prisma.io/docs/pulse) and follow our [get-started guide](https://www.prisma.io/docs/pulse/getting-started) to set up Pulse in minutes. + +In our [Platform docs](https://www.prisma.io/docs/platform/about#concepts), we’ve refined the descriptions of **Workspaces**, **Projects**, and **Environments** and our billing information to make managing your projects and understanding your costs even easier. + +## Introducing our Build, Fortify, Grow Framework + +Learn how Prisma products interoperate at each stage to enhance your data-driven application development process. + +šŸ‘‰Ā [Read up on the Prisma BFG framework](https://www.prisma.io/blog/bfg ) + +## Discord is where it’s at! šŸ¤– + +As of 1 May 2024, we've transitioned from our community Slack to our [Discord server](http://pris.ly/discord). Join us over there to showcase your projects, get community support, or simply meet & chat with your fellow devs. + +See you on [Discord](https://pris.ly/discord)! diff --git a/apps/site/content/changelog/2024-06-06.mdx b/apps/site/content/changelog/2024-06-06.mdx new file mode 100644 index 0000000000..3c00bc49c0 --- /dev/null +++ b/apps/site/content/changelog/2024-06-06.mdx @@ -0,0 +1,56 @@ +--- +title: "Prisma ORM v5.15.0: multi-file schemas and Pulse delivery guarantees" +date: "2024-06-06" +version: "v5.15.0" +slug: "2024-06-06" +headline: "Prisma ORM v5.15.0: multi-file schemas and Pulse delivery guarantees" +tags: + - "Prisma ORM" + - "Pulse" + - "Accelerate" +canonical: "/changelog#log2024-06-06" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.15.0: multi-file schemas and Pulse delivery guarantees + +[Pulse](https://www.prisma.io/data-platform/pulse?utm_source=website&utm_medium=changelog&utm_campaign=pulse-dg) makes it easy to build event-driven apps by letting you react to changes in your database. Thanks to its new event persistence feature, all database change events are now guaranteed to be delivered *at least once* and *in the right order*! + +![meta-delivery-guarantees.png](/changelog/image-6d76b801c5663654db08e0045d8a034526434668-1800x948-png-meta-delivery-guarantees.png) + +Interested in learning more and trying Pulse for yourself? [Dive into our blog post](https://www.prisma.io/blog/prisma-pulse-introducing-delivery-guarantees-for-database-change-events) and get started! + +## Organize your Prisma Schema into Multiple Files in v5.15 + +We are excited to introduce a new Preview feature in Prisma ORM: the ability to organize your Prisma Schema into multiple files. This highly requested feature is now available in our [5.15.0 release](https://github.com/prisma/prisma/releases/tag/5.15.0)! + +![blogpost-splitschema 4.png](/changelog/image-4447786d03b362ef21329948b4c9d48d90ddbe9f-1200x630-png-blogpost-splitschema-4.png) + +Learn how it works in our [latest blog post](https://www.prisma.io/blog/organize-your-prisma-schema-with-multi-file-support), and try it out yourself. Happy coding! + +## Bringing Prisma ORM to React Native and Expo + +Have you considered building React Native apps using Prisma and Expo? Well, Prisma ORM now provides Early Access support for React Native and Expo, fulfilling a popular community request! + +![blog-prisma-react-native.svg](/changelog/image-bbb1e7f6b0f7bef3d318fac96652548cad0ef0b5-844x474-svg-blog-prisma-react-native.svg) + +Check out our [blog post](https://www.prisma.io/blog/bringing-prisma-orm-to-react-native-and-expo) and [public repo](https://github.com/prisma/react-native-prisma) to get started! + +## Prisma Insider Program + +We are happy to announce the launch of the *Prisma Insider Program*! Get early access to features, provide invaluable feedback, and play a key role in the development of Prisma’s commercial products. + +šŸ‘‰ Check the details in our [blog post](https://www.prisma.io/blog/prisma-insider-program). Follow [this link](https://tally.so/r/n9dVeK) to apply and tell us why you’d be a great fit for the Prisma Insider Program. + +## Connection Pooling for High-Traffic Apps + +Connection pooling is crucial to ensure your data-driven app can handle massive loads without failure. Our [blog post](https://www.prisma.io/blog/saving-black-friday-with-connection-pooling) explores how connection pooling can save your e‑commerce platform during peak traffic, such as Black Friday. + +## How Per-Query Caching Keeps your App Fast + +Find out how caching database queries can save you time and complexity and make your app run smoother and faster. + +šŸ“šĀ Learn about the benefits of caching, when to use it, and how easy it is to set up with Prisma Accelerate in our [blog post](https://www.prisma.io/blog/caching-database-queries-with-prisma-accelerate). diff --git a/apps/site/content/changelog/2024-06-27.mdx b/apps/site/content/changelog/2024-06-27.mdx new file mode 100644 index 0000000000..3fc4a25ddf --- /dev/null +++ b/apps/site/content/changelog/2024-06-27.mdx @@ -0,0 +1,57 @@ +--- +title: "Prisma ORM v5.16.0: global omit for model fields" +date: "2024-06-27" +version: "v5.16.0" +slug: "2024-06-27" +headline: "Prisma ORM v5.16.0: global omit for model fields" +tags: + - "Prisma ORM" + - "Platform" +canonical: "/changelog#log2024-06-27" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.16.0: global omit for model fields + +In [5.13.0](https://github.com/prisma/prisma/releases/tag/5.13.0), we introduced Preview support for the `omit` option within the Prisma Client query options. Now, we’re more than happy to announce that we’re expanding the `omitApi` Preview feature to also include the ability to **omit fields globally**. + +Here's an example how you’re able to define fields to omit when instantiating Prisma Client either locally or globally: + +![Code export (3).png](/changelog/image-5bc2e336f20f34d93aa36c8afddda5c82f40343d-2976x1592-png-Code-export-3-.png) + +Read more in our latest [blog post](https://www.prisma.io/blog/introducing-global-omit-for-model-fields-in-prisma-orm-5-16-0). + +## Changes to `prismaSchemaFolder preview feature` + +To continue improving our multi-file schema support, **we have a few breaking changes** to the `prismaSchemaFolder` feature: + +When using relative paths in Prisma Schema files with the prismaSchemaFolder feature, a path is now relative to the file it is defined in rather than relative to the prisma/schema folder. + +We realized that during migration many people would have `prisma/schema` as well as `prisma/schema.prisma`. Our initial implementation looked for a `.prisma` file first and would ignore the `schema` folder if it exists. This is now an error. + +## GitHub or Google... šŸ¤” + +With the new Google authentication option, the choice is yours when signing in on [http://console.prisma.io](https://t.co/tA570dUdO1). + +![Tweet video.gif](/changelog/image-cc9a77a2a38930dd4e9697a2a6342746d8d2932f-600x338-gif-Tweet-video.gif) + +Stay tuned for more authentication options! + +## Achievement Unlocked: Compliance for SOC2 Type II, HIPAA, GDPR, and ISO27001 + +Prisma has successfully implemented processes and controls required for SOC2 Type II, HIPAA, GDPR, and ISO 27001:2022 certifications. These accomplishments demonstrate our commitment to providing secure and reliable software solutions for developers working with databases. + +Read more in our [blog post](https://www.prisma.io/blog/compliance-reqs-complete). + +## šŸš€ Introducing the Prisma Nuxt module + +Simplify setting up Prisma ORM in your Nuxt app and explore Prisma Studio in Nuxt Dev tools. Read more in our [blog post](https://pris.ly/prisma-nuxt-blog). + +## Prisma badges are now available + +Built something awesome with Prisma? 🌟 Show it off with these badges, perfect for your readme or website. [Learn more about embedding the badges](https://github.com/prisma/presskit#badges). + +![GQv4JpCX0AEymn-.jpg](/changelog/image-87ec0230728297f7b8e5535831beaa66f17b734a-2200x1236-jpg-GQv4JpCX0AEymn-.jpg) diff --git a/apps/site/content/changelog/2024-07-18.mdx b/apps/site/content/changelog/2024-07-18.mdx new file mode 100644 index 0000000000..c65ffdb16c --- /dev/null +++ b/apps/site/content/changelog/2024-07-18.mdx @@ -0,0 +1,55 @@ +--- +title: "Prisma ORM v5.17.0: QueryRaw performance improvements" +date: "2024-07-18" +version: "v5.17.0" +slug: "2024-07-18" +headline: "Prisma ORM v5.17.0: QueryRaw performance improvements" +tags: + - "Prisma ORM" + - "Accelerate" +canonical: "/changelog#log2024-07-18" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.17.0: QueryRaw performance improvements + +We’ve changed the response format ofĀ `queryRaw`Ā to decrease its average size, which reduces serialization CPU overhead. Here’s a peek at the results measuring before and after the improvements. + +![perf-graphs.png](/changelog/image-a6312279b8aab81d7fcf21ad3308dd3a18710c7f-2724x1566-png-perf-graphs.png) + +When querying large data sets, we expect you to see improved memory usage and up to 2x performance improvements, as you can clearly see in the graphs. We are very excited to introduce these improvements in our latest [5.17.0 release](https://github.com/prisma/prisma/releases/tag/5.17.0)! + +## **VSCode extension improvements** + +In 5.17, we introduced some quality of life improvements for our [VS Code extension](https://marketplace.visualstudio.com/items?itemName=Prisma.prisma), which makes interacting with it so much better! + +Some of the additions were: + +- Find references across schema files +- Added context on hover +- Additional quick fixes + +Find out more in our latest [release notes](https://github.com/prisma/prisma/releases/tag/5.17.0). + +## Going beyond Prisma ORM + +Already building with Prisma ORM? Explore how Prisma [Accelerate](https://www.prisma.io/data-platform/accelerate) and Prisma [Pulse](https://www.prisma.io/data-platform/pulse) help you develop faster, more scalable applications with real-time features your users are looking for in our new docs page: [Going Beyond Prisma ORM.](https://www.prisma.io/docs/orm/overview/beyond-prisma-orm) + +We take a look at common problems that arise as you're building applications, and how Accelerate and Pulse take your application to the next level after the Prisma ORM. + +## Check how **Solin uses Prisma Accelerate to serve 2.5M database queries per day** + +Solin, a leading fitness marketplace for creators, has improved its platform by integrating Prisma Accelerate. This story highlights how Prisma Accelerate has contributed to Solin's success by enhancing performance and reliability with its scalable connection pool and global database cache. + +![slolin.png](/changelog/image-1ca84fbcd21cf4ba2965d4581c6b2e4ccbeba496-1688x948-png-slolin.png) + +Check out our blog post and learn more about their architecture and the fantastic results they have obtained with Accelerate! + +## Cloud connectivity report + +As we run on AWS & Cloudflare, we collect extensive latency data between them. We think you'll find this data as interesting as we do, so we’re excited to share our 1st annual Cloud Connectivity report! + +Read the report [here](https://www.prisma.io/blog/cloud-connectivity-report-2024) and dive into all the nitty gritty about latency with us. diff --git a/apps/site/content/changelog/2024-08-08.mdx b/apps/site/content/changelog/2024-08-08.mdx new file mode 100644 index 0000000000..6c3c675361 --- /dev/null +++ b/apps/site/content/changelog/2024-08-08.mdx @@ -0,0 +1,62 @@ +--- +title: "Prisma ORM v5.18.0: native UUIDv7 support" +date: "2024-08-08" +version: "v5.18.0" +slug: "2024-08-08" +headline: "Prisma ORM v5.18.0: native UUIDv7 support" +tags: + - "Prisma ORM" + - "Pulse" + - "Accelerate" +canonical: "/changelog#log2024-08-08" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.18.0: native UUIDv7 support + +šŸŽ‰ You can now use the latest version of UUIDs with Prisma ORM, providing even more flexibility and future-proofing for your applications. + +To support this, we’ve updated the `uuid()` function in Prisma Schema to accept an optional integer argument. Right now, the only valid values are `4` and `7`, with `4` being the default. + +More details in our [latest release notes](https://github.com/prisma/prisma/releases/tag/5.18.0). + +![Code export (4).png](/changelog/image-0e65ac228e56ab655cadd7cefc48e651489de118-2876x1672-png-Code-export-4-.png) + +## Pulse bug fixes + +šŸ›  **Resolved Pulse `.stream()` API Event Loss** + +We’ve fixed an issue where the Pulse `.stream()` API would unexpectedly stop receiving events, requiring a manual disconnect and reconnect. This was due to a race condition in the Pulse backend, which has now been identified and corrected. Your event streams should now be more reliable and uninterrupted. + +šŸš€ **Enhanced Error Feedback during Pulse Setup** + +We’ve improved the error messages you receive during the Pulse setup. Previously, users with certain unsupported database configurations encountered generic error messages. Now, Pulse provides clearer, more instructional feedback to help you resolve these issues more efficiently. + +## New Accelerate example projects + +šŸ” Dive into our latest example apps with **Nuxt.js**, **SolidStart**, and **SvelteKit** and learn how to implement Prisma Accelerate and apply effective cache strategies to speed up data retrieval. + +[Check out the code example](https://github.com/prisma/prisma-examples/tree/latest/accelerate) for your preferred framework + +## ORM benchmarks + +Performance is an important topic for us at Prisma! + +šŸ“Š That’s why we created [open-source benchmarks](https://benchmarks.prisma.io/) that compare Prisma ORM, Drizzle ORM, and TypeORM using PostgreSQL databases hosted on AWS RDS, Supabase, and Neon. + +[Read more](https://pris.ly/orm-benchmarks) about our methodology, see a summary of the results, and learn how to ensure your Prisma ORM queries are at optimal speed. + +## AWS Marketplace listing + +Prisma Accelerate and Prisma Pulse are now available on the AWS Marketplace! + +Simplify your infrastructure management with seamless integration and unified billing. + +Discover how to get started with Prisma on AWS today in [our blog post.](https://www.prisma.io/blog/aws-marketplace) + +## Share your feedback about Prisma ORM + +We want to know how you like working with Prisma ORM in your projects! Please [take our 2min survey](https://pris.ly/orm-survey-5-18) and let us know what you like or where we can improve šŸ™ diff --git a/apps/site/content/changelog/2024-08-29.mdx b/apps/site/content/changelog/2024-08-29.mdx new file mode 100644 index 0000000000..f3c10d3f4e --- /dev/null +++ b/apps/site/content/changelog/2024-08-29.mdx @@ -0,0 +1,52 @@ +--- +title: "Prisma ORM v5.19.0: introducing TypedSQL" +date: "2024-08-29" +version: "v5.19.0" +slug: "2024-08-29" +headline: "Prisma ORM v5.19.0: introducing TypedSQL" +tags: + - "Prisma ORM" + - "Pulse" + - "Accelerate" +canonical: "/changelog#log2024-08-29" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.19.0: introducing TypedSQL + +We're excited to introduce [`TypedSQL`](https://www.prisma.io/typedsql) in Prisma ORM, a new feature that brings type safety to your raw SQL queries. With `TypedSQL`, you can write raw SQL in `.sql` files and enjoy the benefits of type-checking and auto-completion, all within your Prisma projects. + +![TypedSQL announcement 844x474.webp](/changelog/image-3591d625e8bce0c71d29d8cd0f026e5f8daf3f79-844x474-webp-TypedSQL-announcement-844x474.webp) + +Simply use the `prisma generate --sql` command to integrate these queries and execute them using the `$queryRawTyped` function. This update bridges the gap between the flexibility of raw SQL and the safety of Prisma, making your development process smoother and more reliable. + +To learn more and get started with TypedSQL, read our [docs](https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/typedsql) and check our latest [blog post](https://www.prisma.io/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm) and [video](https://www.youtube.com/watch?v=ZwYcCti6CEs)! + +## Prisma Accelerate just got smarter: Discover Auto-Scaling + +We're excited to introduce auto-scaling for Prisma Accelerate, a feature designed to scale your applications seamlessly based on demand. + +![blogpost-accelerate_autoscale 7.svg](/changelog/image-6643cd3fa55e6b2554f2256149a7ea9e62df3258-844x474-svg-blogpost-accelerate_autoscale-7.svg) + +With this new capability, Prisma Accelerate automatically adjusts resources to ensure optimal performance, whether you're dealing with a sudden traffic spike or steady growth. This means less manual intervention and more focus on building your application. We're committed to making your development experience as smooth as possible, and auto-scaling is a big step in that direction. + +Learn more about how connection pooling helps your applications and some best practices for setting the connection limit in [our blog post](https://www.prisma.io/blog/introducing-auto-scaling-for-prisma-accelerate). + +## Boost security with Static IPs in Prisma Pulse + +Prisma Pulse now supports static IPs, enhancing security by allowing you to control access to your Prisma Data Platform with fixed IP addresses. This feature ensures that only trusted networks can interact with your data, providing an extra layer of protection for your applications. It's all about giving you more control and peace of mind when managing your data. + +Check our latest [post](https://www.prisma.io/blog/increased-security-static-ip-support-prisma-pulse) and go to the [platform console](https://console.prisma.io/) to get started. + +## Easily set up Pulse with your Neon database + +Prisma Pulse is now a fully supported integration for Postgres databases on Neon. Get started today by reading our [guide](https://neon.tech/docs/guides/logical-replication-prisma-pulse). + +## Prisma ORM hit \#1 on npm as the most downloaded Node.js ORM! + +Prisma ORM was released for production in 2021 and recently became the most downloaded database library on npm! We wouldn’t be here without your amazing support šŸ’œ + +Check out our latest [blog post](https://www.prisma.io/blog/how-prisma-orm-became-the-most-downloaded-orm-for-node-js) where we reflect on our journey and share what's next for Prisma. diff --git a/apps/site/content/changelog/2024-09-26.mdx b/apps/site/content/changelog/2024-09-26.mdx new file mode 100644 index 0000000000..1fe999a965 --- /dev/null +++ b/apps/site/content/changelog/2024-09-26.mdx @@ -0,0 +1,58 @@ +--- +title: "Prisma ORM v5.20.0: Prisma Optimize is now GA" +date: "2024-09-26" +version: "v5.20.0" +slug: "2024-09-26" +headline: "Prisma ORM v5.20.0: Prisma Optimize is now GA" +tags: + - "Prisma ORM" + - "Optimize" + - "Accelerate" +canonical: "/changelog#log2024-09-26" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.20.0: Prisma Optimize is now GA + +Prisma Optimize is now in GA, offering AI-powered tools to analyze and improve database query performance. It identifies problematic queries, provides actionable insights like reducing excessive rows or adding indexes, and allows you to track performance improvements in real-time. + +![blogpost-optimize 8.svg](/changelog/image-a2d1af619fb547bcc995ef12e208107bffafc97f-844x474-svg-blogpost-optimize-8.svg) + +For more details, [read the announcement blog post](https://www.prisma.io/blog/optimize-now-generally-available?utm_source=website&utm_medium=changelog&utm_campaign=optimize-ga). + +## šŸš€Ā Announcing on-demand cache invalidation for Prisma Accelerate + +Now, you can cache query results longer and invalidate them when your data changes. This helps you keep your data fresh while maintaining peak performance. + +šŸ”–Ā [Check out the blog](https://www.prisma.io/blog/announcing-on-demand-cache-invalidation-for-prisma-accelerate?utm_source=website&utm_medium=changelog&utm_campaign=cache-invalidation) + +šŸ“„Ā [Read the docs](https://www.prisma.io/docs/accelerate/caching?utm_source=website&utm_medium=changelog&utm_campaign=cache-invalidation#on-demand-cache-invalidation) + +## Increased query limits for Prisma Accelerate + +This highly requested feature allows you to configure query limits based on your pricing plan to handle longer database query durations or retrieve larger response sizes. + +šŸ‘‰ Explore the details in [our docs](https://www.prisma.io/docs/accelerate/connection-pooling?utm_source=website&utm_medium=changelog&utm_campaign=accelerate-plan-limits#configuring-query-limits) + +## Introducing `strictUndefinedChecks` feature in Preview! + +With Prisma ORM 5.20.0, the Preview feature `strictUndefinedChecks` will disallow any value that is explicitly `undefined` and will be a runtime error. This change is direct feedback from [this GitHub issue](https://github.com/prisma/prisma/issues/20169) and follows [our latest proposal](https://github.com/prisma/prisma/issues/20169#issuecomment-2338360300) on the same issue. + +![Code export (6).png](/changelog/image-02452d28050185410c782423320d0f1319ab49e1-2804x952-png-Code-export-6-.png) + +If you want to read and learn more, take a look at our latest [release notes](https://github.com/prisma/prisma/releases/tag/5.20.0)! + +## Build real-time workflows with Pulse & Inngest + +šŸ¤Ā We teamed up with Inngest to demonstrate how you can build powerful, extensible, ***real-time*** workflows using Prisma Pulse and Inngest together. + +[Check it out](https://www.prisma.io/blog/build-real-time-durable-workflows-with-pulse-and-inngest) + +## Why choose Prisma for your data layer? + +Thousands of developers use Prisma for our popular TypeScript ORM, seamless connection pooling, advanced caching, real-time event streaming, and insightful query optimizations. + +šŸ‘‰ Discover how our products work together to enable type safety, productivity, and flexibility in our [blog post](https://www.prisma.io/blog/why-prisma-2024) diff --git a/apps/site/content/changelog/2024-10-17.mdx b/apps/site/content/changelog/2024-10-17.mdx new file mode 100644 index 0000000000..5350443f3e --- /dev/null +++ b/apps/site/content/changelog/2024-10-17.mdx @@ -0,0 +1,47 @@ +--- +title: "Prisma ORM v5.21.0: new Optimize recommendations" +date: "2024-10-17" +version: "v5.21.0" +slug: "2024-10-17" +headline: "Prisma ORM v5.21.0: new Optimize recommendations" +tags: + - "Prisma ORM" + - "Optimize" +canonical: "/changelog#log2024-10-17" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.21.0: new Optimize recommendations + +With this release, Prisma Optimize brings two new recommendations to help you enhance the performance of your database operations. Explore the new insights and take full advantage of our optimization engine to streamline your development experience. + +[Resolve repeated queries with caching](https://www.prisma.io/docs/optimize/recommendations/repeated-query) + +[Prevent over-fetching with specific selects](https://www.prisma.io/docs/optimize/recommendations/select-returning) + +## Compliance and certification information now found in Organization Settings + +Did you know that Prisma is GDPR, HIPAA, ISO 27001 and SOC-2 Type II compliant? It was a ton of work but we did it! And now, we’ve made it easier to stay on top of compliance and certification requirements. You can now view detailed compliance documentation, certifications, and audit logs directly in your Organization Settings. This addition simplifies governance and helps you ensure that your organization meets the necessary standards for security and data protection. For further information into our certifications please refer to our Trust Center: [https://trust.prisma.io/](https://trust.prisma.io/) + +![image.png](/changelog/image-371165fb1d2fee0df920c530104ed0fc34030dbf-3680x2382-png-image.png) + +## šŸŽØ A fresh coat of paint on our blog, including search! + +Our blog just got a facelift! In addition to the brand new look and feel, we’ve introduced search to help you find posts faster. Whether you’re looking for product updates, tutorials, or community stories, our improved blog experience makes it easier than ever to stay informed. + +Check out the new landing page: [https://www.prisma.io/blog](https://www.prisma.io/blog) + +![image.png](/changelog/image-b1b89114767325fb79cf520f24b52a12ddc75422-3680x2382-png-image.png) + +## Prisma ORM 5.21.0 + +Prisma ORM 5.21.0 brings some bug fixes and needed enhancements so that we can move our `tracing` Preview feature to GA. + +[More info in our release notes!](https://github.com/prisma/prisma/releases/tag/5.21.0) + +## Hiring + +We're growing! If you’re passionate about developer tooling and want to contribute to the future of databases, we want to hear from you. Prisma is currently hiring across multiple teams, including engineering, developer advocacy, and product. Visit our [careers page](https://www.prisma.io/careers) to learn more and see if there's a role that fits your skills. diff --git a/apps/site/content/changelog/2024-11-07.mdx b/apps/site/content/changelog/2024-11-07.mdx new file mode 100644 index 0000000000..a4f4acf30b --- /dev/null +++ b/apps/site/content/changelog/2024-11-07.mdx @@ -0,0 +1,37 @@ +--- +title: "Prisma ORM v5.22.0: Prisma Postgres enters Early Access" +date: "2024-11-07" +version: "v5.22.0" +slug: "2024-11-07" +headline: "Prisma ORM v5.22.0: Prisma Postgres enters Early Access" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2024-11-07" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v5.22.0: Prisma Postgres enters Early Access + +Our biggest news yet: Prisma now offers a managed PostgreSQL service! Entering Early Access, Prisma Postgres is a pay-as-you-go, serverless Postgres offering that offers competitive pricing and no cold starts! + +We’re confident that the technology powering Prisma Postgres is the path forward for database offerings. So much so that [we’ve gone in depth on our blog](https://www.prisma.io/blog/announcing-prisma-postgres-early-access) on how we brought Prisma Postgres to life. + +![blog-prismapostgres 3.png](/changelog/image-6796d74a842eae9429254e7ed11b483985ba4e50-1266x711-png-blog-prismapostgres-3.png) + +## šŸ“ˆ Prisma ORM 5.22.0 + +We’re continuing to improve the Prisma ORM experience with [Prisma ORM 5.22.0](https://github.com/prisma/prisma/releases/tag/5.22.0). In this release we focused on improving the `tracing` Preview feature and fix annoying bugs in metrics and connection pooling. + +[More info available in our release notes!](https://github.com/prisma/prisma/releases/tag/5.22.0) + +## šŸ‘€ Prisma in the wild + +Every so often we get to work with others in making great examples that show off what is possible when you use Prisma. We’re super happy to show off a recent collaboration with [trigger.dev](http://trigger.dev) that allows you to create a [powerful, scalable, video processing pipeline.](https://www.prisma.io/blog/build-a-video-processing-pipeline) + +We also have heard from the community that when checking out our tools for the first time, it can be confusing on where to start. To help that, we’ve begun creating starter projects that show how to get started with a specific product. Today we’d like to highlight our [Optimize starter project](https://github.com/prisma/prisma-examples/tree/latest/optimize/starter) available via `try-prisma`! + +![image.png](/changelog/image-aa243ddc8303046f9a564cf2dd74d7dacb76f007-2048x977-png-image.png) diff --git a/apps/site/content/changelog/2024-11-28.mdx b/apps/site/content/changelog/2024-11-28.mdx new file mode 100644 index 0000000000..dd334fde3d --- /dev/null +++ b/apps/site/content/changelog/2024-11-28.mdx @@ -0,0 +1,37 @@ +--- +title: "Prisma ORM v6.0.0: Prisma ORM v6 has arrived" +date: "2024-11-28" +version: "v6.0.0" +slug: "2024-11-28" +headline: "Prisma ORM v6.0.0: Prisma ORM v6 has arrived" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2024-11-28" +share: + active: false +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.0.0: Prisma ORM v6 has arrived + +Prisma 6 is here, bringing improvements for future-proofing and enhanced performance. We've updated the minimum supported versions of TypeScript and Node.js and significantly improved full-text search capabilities by promoting the `fullTextIndex` and `fullTextSearch` features to General Availability. + +- **Explore what's new**: Read the [launch blog](https://pris.ly/prisma-6?utm_source=website&utm_medium=changelog) to learn how Prisma has evolved, including tooling updates and new features for improved performance and flexibility. +- **Upgrade guide**: Check the [migration guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6?utm_source=website&utm_medium=changelog) for instructions to upgrade your Prisma setup. +- **Detailed release notes**: Dive into the [release notes](https://github.com/prisma/prisma/releases/tag/6.0.0) for a comprehensive look at individual feature updates. + +## šŸ’šĀ Prisma Postgres is free in early access + +Our new serverless PostgreSQL database, **Prisma Postgres**, remains free during its Early Access phase! Learn more about this on our [blog](https://www.prisma.io/blog/prisma-postgres-free-during-early-access). + +We're also gathering feedback on connecting to Prisma Postgres from your favorite database management tools, like TablePlus or PgAdmin. Let us know what you think here: [pris.ly/i-want-tcp](https://pris.ly/i-want-tcp). + +If you've tried Prisma Postgres and have suggestions for improving it to better suit your use case, please provide your feedback here: [pris.ly/ppg-feedback](https://pris.ly/ppg-feedback). + +## šŸ’¬Ā We value your feedback! + +At Prisma, we're always striving to enhance your development experience. If you've recently worked with Prisma ORM or Prisma’s commercial offerings, we'd love to hear from you! Your insights are invaluable in shaping the future of our tools. + +šŸ‘‰ Share your thoughts in this quick [2-minute survey](https://pris.ly/orm/survey/release-5-22). diff --git a/apps/site/content/changelog/2024-12-19.mdx b/apps/site/content/changelog/2024-12-19.mdx new file mode 100644 index 0000000000..a8279578dc --- /dev/null +++ b/apps/site/content/changelog/2024-12-19.mdx @@ -0,0 +1,53 @@ +--- +title: "Prisma ORM v6.1.0: tracing is now stable" +date: "2024-12-19" +version: "v6.1.0" +slug: "2024-12-19" +headline: "Prisma ORM v6.1.0: tracing is now stable" +canonical: "/changelog#log2024-12-19" +share: + active: true + content: ":new: New in Prisma: Prisma ORM v6.1.0 https://prisma.io/changelog#log2024-12-19 #prisma #database #orm" +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.1.0: tracing is now stable + +We’re really excited about Prisma ORM 6.1.0 as our `tracing` Preview feature is now stable! There are a few changes needed if you are using the `tracing` feature, make sure you check out [the release notes](https://github.com/prisma/prisma/releases/tag/6.1.0) for all the details. + +## šŸ“œĀ Our Manifesto for Prisma ORM + +Another huge announcement for the ORM: [we have published a Manifesto](https://www.prisma.io/blog/prisma-orm-manifesto) describing our view of the ORM and how we will tackle governance moving forward. You should read the whole document, but to spoil it a little bit: expect quarterly roadmaps, a leaner and meaner ORM, and an easier path for collaboration and contribution. + +## šŸ“ŠĀ Prisma Studio for Prisma Postgres + +Following up our [announcement of Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-early-access) and then moving Prisma Postgres to [free for the Early Access period](https://www.prisma.io/blog/prisma-postgres-free-during-early-access), we now have [Prisma Studio available for Prisma Postgres](https://www.prisma.io/blog/studio-for-prisma-postgres-view-and-edit-your-data-online)! Prisma Studio, embedded directly in the Prisma Console, allows you to view and edit your data online. + +![image.png](/changelog/image-099c6f875c0d426fbbf032b406a94eb0fa1d8288-844x474-png-image.png) + +## šŸ”Ā New Optimize recommendations + +Prisma Optimize keeps getting better, with two new recommendations to help improve your database’s health: + +šŸ’ø Improve efficiency by [`avoiding @db.Money`](https://www.prisma.io/docs/optimize/recommendations/avoid-db-money) + +ā° Avoid [`@db.timestamp(0) and @db.timestamptz(0)`](https://www.prisma.io/docs/optimize/recommendations/avoid-timestamp-timestampz-0) because of time rounding errors. + +## šŸŒĀ Where in the world are Prisma Accelerate users? + +We released a [live activity view](https://www.prisma.io/global) of Prisma Accelerate queries around the world! It’s awesome to see developers around the world using Prisma Accelerate to scale their projects. + +![image.png](/changelog/image-310a6222b5ee7ac29147f87e2859629acfaee43e-2270x1208-png-image.png) + +## āœļøĀ New content in the Prismasphere + +The Prisma team has been hard at work writing as well as building. + +- [Advanced Database Schema Management with Atlas](https://www.prisma.io/blog/advanced-database-schema-management-with-atlas-and-prisma-orm). Interested in leveling up your migration and schema management flows? Check out how Atlas can work with Prisma ORM to make your team’s lives even easier. +- [Type-safe raw SQL… in Prisma?!](https://www.youtube.com/watch?v=yyOM_fBMehA) Watch as Ryan describes how to use the TypedSQL feature of Prisma ORM when you need a little bit more control over your SQL queries. +- [Prisma Postgres in 100 seconds](https://www.youtube.com/watch?v=lImlEhlxxio). Inspired by the one and only Fireship, Nikolas runs down why Prisma Postgres is simply amazing… all in under 100 seconds. + +## šŸ¤Ā Thanks + +As we wrap up this installment of the Changelog (and 2024!), the Prisma team wants to thank our community. In addition to the [ORM Manifesto](https://www.prisma.io/blog/prisma-orm-manifesto) where we re-commit ourselves to the community, we also are celebrating [40,000 stars on our GitHub repo](https://github.com/prisma/prisma). We’ve come a long way, but this is only the beginning for Prisma and we couldn’t be happier having you along with us. diff --git a/apps/site/content/changelog/2025-01-09.mdx b/apps/site/content/changelog/2025-01-09.mdx new file mode 100644 index 0000000000..55b42abae7 --- /dev/null +++ b/apps/site/content/changelog/2025-01-09.mdx @@ -0,0 +1,59 @@ +--- +title: "Prisma ORM v6.2.0: omit API is now GA" +date: "2025-01-09" +version: "v6.2.0" +slug: "2025-01-09" +headline: "Prisma ORM v6.2.0: omit API is now GA" +canonical: "/changelog#log2025-01-09" +share: + active: true + content: ":new: New in Prisma: Prisma ORM v6.2.0 https://prisma.io/changelog#log2025-01-09 #prisma #database #orm" +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.2.0: omit API is now GA + +Prisma ORM 6.2.0 might be a minor release, but the changes in it are **major.** In this release we are moving the omit API ([our most requested feature](https://github.com/prisma/prisma/issues/5042)) to Generally Available. You can now use the omit API without a Preview feature flag! + +6.2.0 also includes some other highly requested features: + +- `json` and `enum` fields in SQLite +- `updateManyAndReturn` support +- Support for auto-generated ULID values + +As always, [check out the release notes](https://github.com/prisma/prisma/releases/tag/6.2.0) for all the details. + +## šŸ¤–Ā Ask AI makes its way to the Console + +We’ve been using [kapa.ai](http://kapa.ai) in our docs for a while now and have nothing but good things to say! So much so that [the Ask AI functionality is now integrated in the Prisma Console](https://x.com/prisma/status/1871182973506371725). You can get answers tailored for you and the content you’re viewing 🤩 + +## šŸ”Ā New Optimize recommendations + +We’re continuing to improve Prisma Optimize with **five** new recommendations to help your database’s performance: + +- [PostgreSQL: Recommend using `CURRENT_TIMESTAMP` / `LOCALTIMESTAMP` / `CURRENT_DATE` / `LOCALTIME` instead of `CURRENT_TIME`](https://www.prisma.io/docs/optimize/recommendations/current-time) +- [Recommend removing index on similar sorted set of columns when unique constraint exists](https://www.prisma.io/docs/optimize/recommendations/indexing-on-unique-columns) +- [Recommend avoiding long-running transactions](https://www.prisma.io/docs/optimize/recommendations/long-running-transactions) +- [Recommend removing unnecessary indexes](https://www.prisma.io/docs/optimize/recommendations/unnecessary-indexes) +- [Recommend avoid storing large objects/blobs (like images) in the database](https://www.prisma.io/docs/optimize/recommendations/storing-blob-in-database) + +## šŸ“ˆĀ Over 15B Accelerate queries and 10K Prisma Postgres Databases + +It seems like just yesterday that Prisma Accelerate hit a billion queries, but now we’re soaring past that. In addition to 15 billion Prisma Accelerate queries, we’re also happy to see our newest product, Prisma Postgres, [hit ten thousand databases created](https://x.com/prisma/status/1876931859470520320). Thank you to everyone who has tried out Prisma Postgres during Early Access! + +## āœļøĀ New content in the Prismasphere + +The weather might be cooling down this winter, but our team’s writing is heating up! Over the past three weeks we talked about: + +- [The Top 5 Myths about Prisma ORM](https://www.prisma.io/blog/top-5-myths-about-prisma-orm) and how we’ve improved over the past few years. +- [Building a real-time app with Prisma Pulse, Socket.io, and Next.js](https://www.prisma.io/blog/build-a-real-time-app-with-nextjs-socketio-and-prisma-postgres) to make sure that your PrismaHut pizza is on time, every time. +- [Picking the join strategy that works best for you](https://www.youtube.com/watch?v=f64gXS9kVlk). Yes, that does mean you can do DB-level joins 😱 +- [Utilizing multiple schema files to organize your DB](https://www.youtube.com/watch?v=zS_vJgRPYo8) with our `prismaSchemaFolder` Preview feature! +- [A new guides section of our docs](https://www.prisma.io/docs/guides) that serves as your one-stop shop for step-by-step Prisma guides. + +And much more! Be sure to check out our [X](https://x.com/prisma), [Bluesky](https://bsky.app/profile/prisma.io), and [YouTube](https://www.youtube.com/@PrismaData) accounts for all the latest content. + +## šŸ¤Ā Share our posts near and far + +As you might have noticed on this exact page, we now have a new share feature! Across our blog and changelog [we have an easy share button](https://x.com/prisma/status/1872248084157403407) for X, Bluesky, LinkedIn, and beyond! diff --git a/apps/site/content/changelog/2025-01-30.mdx b/apps/site/content/changelog/2025-01-30.mdx new file mode 100644 index 0000000000..236da03a62 --- /dev/null +++ b/apps/site/content/changelog/2025-01-30.mdx @@ -0,0 +1,55 @@ +--- +title: "Prisma ORM v6.3.0: Prisma Studio returns to Console" +date: "2025-01-30" +version: "v6.3.0" +slug: "2025-01-30" +headline: "Prisma ORM v6.3.0: Prisma Studio returns to Console" +canonical: "/changelog#log2025-01-30" +share: + active: true + content: "Check out the latest Prisma Changelog!" +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.3.0: Prisma Studio returns to Console + +[We’ve released a new version of Prisma Studio!](https://www.prisma.io/blog/we-made-prisma-studio-even-better) This version is packaged with Prisma ORM 6.3.0 and also marks the triumphant return of **Prisma Studio in the Console**. + +Be sure to **check out our blog post** for all the details, but here’s a shortlist: + +- Prisma Studio inside of [the Platform Console](https://console.prisma.io) allows you to view and modify your data +- Swapping from model to model is a breeze thanks to our model sidebar +- Editing multiple fields in a row is even easier with a new record editor +- You can now close all your opens swiftly with a single click of the new ā€œClose allā€ button + +These changes are live for databases connected to the Prisma Data Platform and for projects using Prisma ORM 6.3.0. Just use `npx prisma studio`! + +## šŸ“ŠĀ **Prisma ORM v6.3.0 released** + +Alongside Prisma Studio updates, Prisma ORM 6.3.0 comes with some quality of life fixes that should make your experience even better. + +- You can now `limit` the rows affected by `updateMany()` and `deleteMany()` +- `generator` fields are now sorted deterministically (no more random changes!) +- Replaced `NOT IN` with `NOT EXISTS` in relation filters + +As always, [check out the release notes](https://github.com/prisma/prisma/releases/tag/6.3.0) for all the details. + +## 🫣 Preview features no longer uncertain + +In [our ORM Manifesto](https://www.prisma.io/blog/prisma-orm-manifesto) we noted that we had several Preview features that have gone stale with no updates in several years. We’re happy to report that our ORM team has gone through the existing features and their implementations and [provided a plan on our GitHub](https://github.com/prisma/prisma/discussions/26136) on how they will be tackled! + +As a reminder, once a feature enters Preview, we plan to retire or promote that feature within the next three month period. + +## āœļøĀ New content in the Prismasphere + +We’re busy writing to make sure that your Prisma experience is the best it can be. Here’s what we’ve been cooking up: + +- [What join strategy should I use when?](https://www.prisma.io/blog/database-vs-application-demystifying-join-strategies) Wait… what even is a join strategy? Thankfully Niko has us covered. +- [Prisma is doing WHAT?!](https://www.prisma.io/blog/from-rust-to-typescript-a-new-chapter-for-prisma-orm) You heard right: Prisma ORM is moving on from our Rust query engine. Read the latest on our progress! +- [Working with JSON fields in Prisma ORM](https://www.youtube.com/watch?v=gcpcxMxJ1AQ). This great video from Ryan shows how you can best use JSON fields in your models +- [Prisma migrations step-by-step](https://www.youtube.com/watch?v=ZaCFsFES5yQ). Ever wondered how to best tackle Prisma migrations? We’ve got you. +- [How to get the best out of Cursor](https://www.prisma.io/docs/guides/using-prisma-in-cursor). LLM-augmented IDEs are all the rage and we’ve got a guide on how best to utilize the power of Cursor to help in your Prisma ORM projects! +- [Real-time with Prisma Postgres and Cloudflare](https://www.prisma.io/docs/guides/prisma-postgres-realtime-on-cloudflare). This guide covers starting from scratch and building a real-time app with Hono, Cloudflare Workers, and Prisma Postgres. + +And much more! Be sure to check out our [X](https://x.com/prisma), [BlueSky](https://bsky.app/profile/prisma.io), and [YouTube](https://www.youtube.com/@PrismaData) accounts for all the latest content. diff --git a/apps/site/content/changelog/2025-02-20.mdx b/apps/site/content/changelog/2025-02-20.mdx new file mode 100644 index 0000000000..b6d3a722a7 --- /dev/null +++ b/apps/site/content/changelog/2025-02-20.mdx @@ -0,0 +1,71 @@ +--- +title: "Prisma ORM v6.4.0: Prisma Postgres is GA" +date: "2025-02-20" +version: "v6.4.0" +slug: "2025-02-20" +headline: "Prisma ORM v6.4.0: Prisma Postgres is GA" +canonical: "/changelog#log2025-02-20" +share: + active: true + content: "Check out the latest Prisma Changelog!" +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.4.0: Prisma Postgres is GA + +Prisma Postgres, our hosted PostgreSQL offering, is ready for production! + +We’re really excited to finally have a database offering, especially since Prisma Postgres comes standard with: + +- Near instant cold starts. +- Caching and connection pooling. +- Real-time event support. +- All with a generous free tier! + +For more info, be sure to [check out our blog post on Prisma Postgres](https://www.prisma.io/blog/prisma-postgres-the-future-of-serverless-databases). If you’re feeling eager, you can get started with our new `--db` flag in `prisma init` + +![image.png](/changelog/image-fbd0fac24c691f6ebca2c4a85e19fc95196ae070-2080x848-png-image.png) + +We’re also ready to see Prisma Postgres everywhere. With our [Instant Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-for-ai-coding-agents) initiative, Prisma Postgres will be available via LLMs so that you can get a database for your next project instantly. + +## šŸ”§Ā Prisma ORM 6.4.0 + +Prisma ORM 6.4.0 has been released and has some great new features: + +### new `prisma.config.ts` file + +With Prisma ORM 6.4.0, we’re introducing a new configuration file for Prisma ORM in Early Access. + +If you’d like to give it a try, just create a `prisma.config.ts` file like this one: + +```typescript +import path from 'node:path' + +export default { + earlyAccess: true, // required while in Early Access + + schema: { + kind: 'single', // use 'multi' if you're using the `prismaSchemaFolder` preview feature + filePath: path.join('custom', 'prisma', 'schema.prisma') // key should be 'folderPath' if you're using the `prismaSchemaFolder` preview feature. + }, +} +``` + +To learn more, check out [our documentation](https://www.prisma.io/docs/orm/reference/prisma-config-reference). + +## šŸŽØĀ Improved Optimize Onboarding + +Prisma Optimize is our cloud-based tool for diagnosing slow queries or potential problems in your applications. We recently overhauled our onboarding so you can get from signup to optimizing, faster! + +## āœļøĀ New content in the Prismasphere + +As always, we have a number of great articles shared by our team. Here are some highlights: + +[GreatFrontEnd helps devs excel](https://x.com/prisma/status/1889721180044792201): GreatFrontEnd helps prospective front end developers ace interviews. Learn about their platform and how Prisma powers it! + +[The Life of a Prisma Postgres Query](https://www.prisma.io/blog/cloudflare-unikernels-and-bare-metal-life-of-a-prisma-postgres-query): Prisma Postgres is slick, but there’s a lot of technology under the hood. Read on to learn how your queries traverse our infrastructure. + +[Prisma Postgres in your favorite environment](https://www.prisma.io/blog/prisma-postgres-now-in-your-favorite-environment): Our goal is to make your development life easier. When it comes to Prisma Postgres, that means making sure it works with your development environment. Learn how we’re making sure that accessing Prisma Postgres is seamless in Netlify, IDX, Vercel, and beyond! + +[Best Practices for Prisma ORM and Cursor](https://www.prisma.io/docs/guides/cursor): LLM-augmented IDEs are doing wonders for developer productivity. To get the most out of them with your Prisma ORM projects, check out this handy guide! diff --git a/apps/site/content/changelog/2025-03-13.mdx b/apps/site/content/changelog/2025-03-13.mdx new file mode 100644 index 0000000000..f88095c0f7 --- /dev/null +++ b/apps/site/content/changelog/2025-03-13.mdx @@ -0,0 +1,40 @@ +--- +title: "Prisma ORM v6.5.0: Rust to TypeScript update" +date: "2025-03-13" +version: "v6.5.0" +slug: "2025-03-13" +headline: "Prisma ORM v6.5.0: Rust to TypeScript update" +tags: + - "Accelerate" + - "Optimize" + - "MCP" +canonical: "/changelog#log2025-03-13" +share: + active: true + content: "Check out the latest Prisma Changelog!" +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.5.0: Rust to TypeScript update + +![image.png](/changelog/image-f94c7ac0283481bbc8177d30bb3bc92464f1ca33-844x474-png-image.png) + +Our ORM team is making progress on our transition from Rust to TypeScript. We've developed [a migration plan](https://www.prisma.io/blog/from-rust-to-typescript-a-new-chapter-for-prisma-orm) and now have [an initial prototype with benchmarks](https://www.prisma.io/blog/rust-to-typescript-update-boosting-prisma-orm-performance)! + +This quarter we will be keeping our momentum by releasing support for different databases one by one. You can read up on that in [our latest ORM Roadmap](https://github.com/prisma/prisma/issues/26592). + +## šŸ”’ Prisma ORM 6.5.0 + +Prisma ORM 6.5.0 has been released with two big items! + +First, we no longer support the resetting of a database via the `prisma migrate dev` command. If a schema drift is detected, or if the migration is unable to be cleanly applied, we will print an error and suggest a workaround like the already existing `prisma migrate reset` command. + +Second, we’re expanding the responsibilities of the new `prisma.config.ts` file to include Studio! Now, you’ll be able to run Prisma Studio backed by modern Prisma ORM features like driver adapters. Check out our [Prisma Config docs](https://www.prisma.io/docs/orm/reference/prisma-config-reference) to learn more. + +## āœļøĀ New content in the Prismasphere + +- [How to build an Astro app with Prisma](https://www.youtube.com/watch?v=4vlyfUMDFnI&feature=youtu.be): In this video, we take you through the steps on adding Prisma ORM to an Astro app and how you can expand it further! +- [Prisma ORM isn’t *just* a high-level client](https://x.com/prisma/status/1895519411584590292): We also have everything you need for low-level, direct SQL! +- [How to make stellar admin panels with react-admin and Prisma](https://www.youtube.com/watch?v=MMcRLwhmcIs): This video covers the creation of admin panels using react-admin and Prisma Postgres as a data store. +- [Why the Prisma Schema Language is simply great](https://t.co/XvtCPMiCMt): The Prisma Schema Language is core to Prisma ORM. Learn how it compares to other options on the market and why it’s still the best way to define your data. diff --git a/apps/site/content/changelog/2025-04-10.mdx b/apps/site/content/changelog/2025-04-10.mdx new file mode 100644 index 0000000000..a47bcf4766 --- /dev/null +++ b/apps/site/content/changelog/2025-04-10.mdx @@ -0,0 +1,110 @@ +--- +title: "Prisma ORM v6.6.0: MCP Server for Prisma Postgres" +date: "2025-04-10" +version: "v6.6.0" +slug: "2025-04-10" +headline: "Prisma ORM v6.6.0: MCP Server for Prisma Postgres" +tags: + - "Prisma ORM" + - "Prisma Postgres" + - "mcp" +canonical: "/changelog#log2025-04-10" +share: + active: true + content: "Check out the latest Prisma Changelog!" +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.6.0: MCP Server for Prisma Postgres + +[Prisma Postgres](https://www.prisma.io/postgres)Ā is the first serverless database without cold starts. Designed for optimal efficiency and high performance, it's the perfect database to be used alongside AI tools like Cursor, Windsurf, Lovable or co.dev. + +In the [v6.6.0](https://github.com/prisma/prisma/releases/tag/6.6.0) ORM release, we added a command to start a Prisma MCP server that you can integrate in your AI development environment. Thanks to that MCP server, you can now: + +- tell your AI agent to create new DB instances +- design your data model +- chat through a database migration + +… and much more. + +To get started, add this snippet to the MCP configuration of your favorite AI tool and get started: + +```json +{ + "mcpServers": { + "Prisma": { + "command": "npx", + "args": ["-y", "prisma", "mcp"] + } + } +} +``` + +Read more about the MCP server on our blog: [**Announcing Prisma's MCP Server: Vibe Code with Prisma Postgres**](https://pris.ly/mcp-announcement?utm_source=changelog) + +## šŸš€Ā Prisma ORM 6.6.0 + +Prisma ORM [v6.6.0](https://github.com/prisma/prisma/releases/tag/6.6.0) comes packed with amazing features: + +#### **A modern and flexible `prisma-client` generator with ESM support (Early Access)** + +In v6.6.0, we introduced a newĀ `prisma-client`Ā generator that's more flexible, comes with ESM support and removes any magic behaviours that may cause friction with the currentĀ `prisma-client-js`Ā generator. + +Note: TheĀ `prisma-client`Ā generator is currently inĀ Early AccessĀ and will likely have some breaking changes in the next releases. + +Here are the main differences: + +- Requires anĀ `output`Ā path; no ā€œmagicā€ generation intoĀ `node_modules`Ā any more +- Supports ESM and CommonJS via theĀ `moduleFormat`Ā field +- Outputs plain TypeScript that's bundled just like the rest of your application code + +Here's how you can use the newĀ `prisma-client`Ā generator in your Prisma schema: + +```typescript +// prisma/schema.prisma +generator client { + provider = "prisma-client" // no `-js` at the end + output = "../src/generated/prisma" // `output` is required + moduleFormat = "esm" // or `"cjs"` for CommonJS +} +``` + +šŸ“š Learn more in the [docs](https://www.prisma.io/docs/orm/prisma-schema/overview/generators#prisma-client-early-access). + +#### **Cloudflare D1 & Turso/LibSQL migrations (Early Access)** + +Cloudflare D1 and Turso are popular database providers that are both based on SQLite. While you can query them using the respective driver adapter for D1 or Turso, previous versions of Prisma ORM weren't able to make schema changes against these databases. + +With the v6.6.0 release, we're sharing the firstĀ [Early Access](https://www.prisma.io/docs/orm/more/releases#early-access)Ā version of native D1 migration support for the following commands: + +- `prisma db push`: Updates the schema of the remote database based on your Prisma schema +- `prisma db pull`: Introspects the schema of the remote database and updates your local Prisma schema +- `prisma migrate diff`: Outputs the difference between the schema of the remote database and your local Prisma schema + +šŸ“šĀ Learn more in the docs: + +- [Cloudflare D1](https://www.prisma.io/docs/orm/overview/databases/cloudflare-d1) +- [Turso / LibSQL](https://www.prisma.io/docs/orm/overview/databases/turso) + +## šŸ˜ŽĀ `npx prisma init --prompt "An encyclopedia for cats"` + +You can now pass aĀ `--prompt`Ā option to theĀ `prisma init`Ā command to have it scaffold a Prisma schema for you and deploy it to a fresh Prisma Postgres instance: + +```text +npx prisma init --prompt "An encyclopedia for cats" +``` + +For everyone, following social media trends, we also created an alias calledĀ `--vibe`Ā for you šŸ˜‰ + +```text +npx prisma init --vibe "Cat meme generator" +``` + +## šŸ§‘ā€šŸš€Ā More from the Prismasphere + +- Join us for an **in-person event on May 1st** (Thursday) in London: [**šŸŒŽ Region: Earth: London with Cloudflare & Prisma**](https://lu.ma/qkutuxc9?utm_source=prisma-changelog)**.** +- Check out our [**new guide to get started with SolidJS & Prisma**](https://www.prisma.io/docs/guides/solid-start). +- Watch this [**ā€œAsk Me Anythingā€ session on YouTube**](https://www.youtube.com/watch?v=bH4nla8Awzs) where our ORM engineering team answers all your questions and talks about upcoming improvements to Prisma ORM. +- Our friends at MongoDB have published a great tutorial on getting started with Next.js 15, MongoDB & Prisma ORM: [**10X Your Development Speed: Prisma + MongoDB + Next.js Ultimate Stack**](https://dev.to/mongodb/10x-your-development-speed-prisma-mongodb-nextjs-ultimate-stack-5g1o) +- We not only cook software, we also cook music every once in a while šŸ˜‰ Check out our new band ā€œDBeastie boysā€ with their **new song** [**ā€œNo cold starts, just hot queriesā€**](https://x.com/prisma/status/1907768482000711714) šŸŽ¶šŸ”„ diff --git a/apps/site/content/changelog/2025-05-01.mdx b/apps/site/content/changelog/2025-05-01.mdx new file mode 100644 index 0000000000..c5c1c88709 --- /dev/null +++ b/apps/site/content/changelog/2025-05-01.mdx @@ -0,0 +1,98 @@ +--- +title: "Prisma ORM v6.7.0: Prisma Postgres on Vercel Marketplace" +date: "2025-05-01" +version: "v6.7.0" +slug: "2025-05-01" +headline: "Prisma ORM v6.7.0: Prisma Postgres on Vercel Marketplace" +tags: + - "Prisma Postgres" + - "Prisma ORM" +canonical: "/changelog#log2025-05-01" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.7.0: Prisma Postgres on Vercel Marketplace + +We’re excited to announce that Prisma Postgres is now available as a [Vercel Marketplace integration](https://vercel.com/marketplace/prisma). With the [integration](https://www.prisma.io/blog/connect-your-apps-to-prisma-postgres-via-vercel-marketplace-integration), you can: + +- create Prisma Postgres instances without leaving the Vercel Dashboard +- manage your Prisma Postgres billing inside your Vercel account +- connect Prisma Postgres instances to your Vercel apps with a single click + +Try it out with our [starter template](https://vercel.com/templates/next.js/prisma-postgres) and let us know what you think of it on [X](https://pris.ly/x) and [Discord](https://pris.ly/discord)! + +## šŸ”Ā **Securely Access Prisma Postgres from the Frontend (Early Access)** + +Sometimes, all you need in your frontend app is a plain piece of data! For these situations, we’ve now released a new feature for Prisma Postgres that allows you to talk to your database directly from the frontend in a secure way! + +With Prisma Postgres’ new *security rules* feature, you can define fine-grained access rules for your database directly in TypeScript. [Join our private Early Access program](https://pris.ly/sr-form) and be one of the first developers to try out Prisma Postgres and help us shape its future with your feedback. + +## šŸŽ‰Ā Prisma ORM 6.7.0 + +The Prisma ORM keeps improving at a rapid pace! In the [6.7.0 release](https://pris.ly/release/6.7.0), we achieved a major milestone and published the first version of [Prisma ORM without Rust engines](https://www.prisma.io/blog/try-the-new-rust-free-version-of-prisma-orm-early-access). + +#### **Prisma ORM without Rust engines (Early Access)** + +We have written extensively aboutĀ [why we're moving away from Rust](https://www.prisma.io/blog/from-rust-to-typescript-a-new-chapter-for-prisma-orm)Ā and already sharedĀ [the first measurements of performance boosts](https://www.prisma.io/blog/rust-to-typescript-update-boosting-prisma-orm-performance)Ā we saw from the re-write. + +This re-write is not just a move from one programming language to another. It fundamentally improves the architecture of Prisma ORM and replaces the Query Engine (which is written in Rust and deployed as a standalone binary) with a much leaner and more efficient approach that we callĀ *Query Compiler*. + +To use the new "Rust-free" version of Prisma ORM, add theĀ `queryCompiler`Ā (*new*) andĀ `driverAdapters`Ā feature flags to your client generator: + +```typescript +generator client { + provider = "prisma-client-js" + previewFeatures = ["queryCompiler", "driverAdapters"] + output = "../generated/prisma" +} +``` + +šŸ“šĀ Learn more in theĀ [docs](https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine). + +#### **Support for `better-sqlite3` JavaScript driver (Preview)** + +In this release, we're introducing a new driver adapter for using theĀ [`better-sqlite3`](https://github.com/WiseLibs/better-sqlite3)Ā package, so you can now interact with SQLite databases in a JS-native way: + +```typescript +import { PrismaBetterSQLite3 } from '@prisma/adapter-better-sqlite3'; +import { PrismaClient } from './generated/prisma'; + +const adapter = new PrismaBetterSQLite3({ + url: "file:./prisma/dev.db" +}); +const prisma = new PrismaClient({ adapter }); +``` + +šŸ“šĀ Learn more in theĀ [docs](https://www.prisma.io/docs/orm/overview/databases/sqlite#using-the-better-sqlite3-driver). + +#### **Multi-file Prisma schemas are now production-ready** + +TheĀ `prismaSchemaFolder`Ā Preview feature is moving into General Availability šŸŽ‰Ā With that change, Prisma ORM now by default supports splitting your Prisma schema file. + +šŸ“šĀ Learn more in theĀ [docs](https://www.prisma.io/docs/orm/prisma-schema/overview/location#multi-file-prisma-schema). + +#### **Splitting generated output with new `prisma-client` generator (Preview)** + +With theĀ `prisma-client-js`Ā generator, the generated Prisma Client library is put into a singleĀ `index.d.ts`Ā file. This sometimes led toĀ [issues](https://github.com/prisma/prisma/issues/4807)Ā with large schemas where the size of the generated output could slow down code editors and break auto-complete. + +As of this release, our newĀ `prisma-client`Ā generator (that was released inĀ [6.6.0](https://github.com/prisma/prisma/releases/tag/6.6.0)) now splits the generated Prisma Client library into multiple files and thus avoids the problems of a single, large output file. + +šŸ“šĀ Learn more in theĀ [docs](https://www.prisma.io/docs/orm/prisma-schema/overview/generators#output-splitting-and-importing-types). + +## šŸ§‘ā€šŸš€Ā More from the Prismasphere + +#### šŸŽ“Ā Learn about databases on the Prisma blog + +We love to educate you about how to work with databases in various projects and contexts! In the last weeks, we’ve published several articles on our blog that you should check out if you’re keen on growing your database skills as a developer: + +- [Make Your Applications Fast Globally](https://www.prisma.io/blog/make-your-applications-fast-globally) +- [Working With Data in Large Teams](https://www.prisma.io/blog/working-with-data-in-large-teams) +- [Vibe Coding with Limits — How to Build Apps in the Age of AI](https://www.prisma.io/blog/vibe-coding-with-limits-how-to-build-apps-in-the-age-of-ai) + +#### šŸ“ŗĀ ā€Ask me Anythingā€ with ORM team on YouTube + +We also recently held another AMA with our ORM team discussing all the new stuff that’s happening around the new `prisma-client` generator, ESM support, D1 migrations and the move to TypeScript, you can [watch it on YouTube now](https://www.youtube.com/watch?v=sNF48HF17Qg). diff --git a/apps/site/content/changelog/2025-05-19.mdx b/apps/site/content/changelog/2025-05-19.mdx new file mode 100644 index 0000000000..4596478357 --- /dev/null +++ b/apps/site/content/changelog/2025-05-19.mdx @@ -0,0 +1,89 @@ +--- +title: "Prisma ORM v6.8.0: local Prisma Postgres with prisma dev" +date: "2025-05-19" +version: "v6.8.0" +slug: "2025-05-19" +headline: "Prisma ORM v6.8.0: local Prisma Postgres with prisma dev" +tags: + - "Prisma Postgres" + - "Prisma ORM" + - "MCP" +canonical: "/changelog#log2025-05-19" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.8.0: local Prisma Postgres with prisma dev + +#### šŸ’» **Local development with Prisma Postgres via `prisma dev` (Early Access)** + +In 6.8.0, we released a way to develop against Prisma PostgresĀ *locally* — no Docker required! + +To get started, run the newĀ `prisma dev`Ā command: + +```sh +npx prisma dev # starts a local Prisma Postgres server +``` + +This command spins up a local Prisma Postgres instance and prints the connection URL that you'll need to set as theĀ `url`Ā of yourĀ `datasource`Ā block to point to a local Prisma Postgres instance. It looks similar to this: + +```typescript +datasource db { + provider = "postgresql" + url = "prisma+postgres://localhost:51213/?api_key=ey..." +} +``` + +You can then run migrations and execute queries against this local Prisma Postgres instance as with any remote one. + +#### šŸ¦• **Native Deno support in `prisma-client` generator (Preview)** + +We’ve removed theĀ `deno`Ā Preview feature from theĀ `prisma-client-js`Ā generator. If you want to use Prisma ORM with Deno, you can now do so with the newĀ [`prisma-client`](https://www.prisma.io/docs/orm/prisma-schema/overview/generators#prisma-client-early-access)Ā generator: + +```typescript +generator client { + provider = "prisma-client" + output = "../src/generated/prisma" + runtime = "deno" +} +``` + +## **šŸ¤–Ā New AI workflows in VS Code** + +#### šŸ•µļøĀ **Agent mode: AI support with your database workflows** + +In the latest release of the Prisma VS Code extension, we’re bringing new capabilities for [agent mode in VS Code](https://code.visualstudio.com/blogs/2025/04/07/agentMode). If you're using VS Code and have the Prisma VS Code extension installed, your agent now is able to help you with your database workflows, such as: + +- Checking the status of your migrations (e.g. telling you if migrations haven't been applied) +- Creating and running schema migrations for you +- Authenticating you with the Prisma Console +- Provisioning new Prisma Postgres instances so you can start coding right away + +All you need to do is make sure you're using the latest version ofĀ [Prisma's VS Code extension](https://marketplace.visualstudio.com/items?itemName=Prisma.prisma)Ā and your agent is ready to go šŸš€ + +#### šŸ“šĀ Chat with Prisma’s docs in GitHub Copilot Chat + +Our new Prisma for GitHub [Copilot extension](https://github.com/apps/prisma-for-github-copilot) enables you to ask questions and get immediate answers right from Prisma’s documentation: + +- **Fast lookups:**Ā Get the right answer immediately. +- **Stay in your flow:**Ā No more jumping between documentation and the editor. +- **Boost productivity:**Ā Spend more time coding, less time searching. + +## **šŸ§‘ā€šŸš€Ā More from the Prismasphere** + +#### **šŸŒĀ New Singapore region for Prisma Postgres** + +We recentlyĀ [ran a poll](https://x.com/prisma/status/1916808960868552943)Ā where we asked you which region you'd like to see next for Prisma Postgres. The majority vote went toĀ **Asia Pacific (Singapore)**, so as of today, you're able to spin up new Prisma Postgres instances in theĀ `ap-southeast-1`Ā region. + +We're not stopping here, so [keep an eye out on X](https://pris.ly/x)Ā for another poll asking for your favorite regions that we should add! + +#### šŸ”ØĀ How we built the Prisma MCP server + +In this technical deep dive, we give an overview of the anatomy of MCP servers and explain how we built the one for Prisma. The article covers the tradeoffs between local and remote MCP servers, theĀ `@modelcontextprotocol/sdk`Ā package, and how we enabled LLMs to use the Prisma CLI. [Read the article on our blog.](https://www.prisma.io/blog/about-mcp-servers-and-how-we-built-one-for-prisma) + +#### šŸ’”Ā **Operations-based billing: A simpler pricing model for modern databases** + +Serverless pricing for databases is notoriously difficult to grok and predict accurately. When thinking of how to solve this pricing dilemma for Prisma Postgres, we wanted to make things easy. Our operations-based model simplifies pricing and removes the need to think about resource sizes or abstract compute time metrics. [Read the article on our blog.](https://www.prisma.io/blog/operations-based-billing) diff --git a/apps/site/content/changelog/2025-06-05.mdx b/apps/site/content/changelog/2025-06-05.mdx new file mode 100644 index 0000000000..600c5e050c --- /dev/null +++ b/apps/site/content/changelog/2025-06-05.mdx @@ -0,0 +1,110 @@ +--- +title: "Prisma ORM v6.9.0: no Rust engines for PostgreSQL and SQLite" +date: "2025-06-05" +version: "v6.9.0" +slug: "2025-06-05" +headline: "Prisma ORM v6.9.0: no Rust engines for PostgreSQL and SQLite" +tags: + - "Prisma Postgres" + - "Prisma ORM" +canonical: "/changelog#log2025-06-05" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.9.0: no Rust engines for PostgreSQL and SQLite + +If you've been excited about our work of removing the Rust engines from Prisma ORM but hesitated trying it out because it was in anĀ [Early Access](https://www.prisma.io/docs/orm/more/releases#early-access)Ā (EA) phase, now is a great time for you to get your hands on theĀ [Rust-free Prisma ORM version](https://www.prisma.io/blog/try-the-new-rust-free-version-of-prisma-orm-early-access). + +This major architectural change has moved from EA intoĀ [Preview](https://www.prisma.io/docs/orm/more/releases#preview)Ā in this release, meaning there are no more know major issues. If you want to try it out, add theĀ `queryCompiler`Ā andĀ `driverAdapters`Ā preview feature flags to yourĀ `generator`, install the driver adapter for your database, and get going: + +```typescript +generator client { + provider = "prisma-client-js" + previewFeatures = ["queryCompiler", "driverAdapters"] + output = "../generated/prisma" +} +``` + +No more hassle with query engines, binary targets and an even smoother experience in serverless and edge environments!Ā Learn more in theĀ [docs](https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine). + +## **šŸŽØĀ Connect to Prisma Postgres with any ORM (Preview)** + +Since itsĀ [GA release](https://www.prisma.io/blog/prisma-postgres-the-future-of-serverless-databases), you could only interact with Prisma Postgres using Prisma ORM via aĀ [custom connection string](https://www.prisma.io/docs/orm/reference/connection-urls#prisma-postgres). + +This has changed now: When setting up a new Prisma Postgres instance, you receive a regular PostgreSQL direct TCP connection string (starting withĀ `postgres://...`) that lets you connect to it using your favorite tool or database library, including Drizzle, Kysely, TypeORM, and others. + +![direct-tcp.png](/changelog/image-ac099c83eef7bbbc99e6c61cafcac07bb7bfab64-2470x1030-png-direct-tcp.png) + +If you want to access Prisma Postgres from a serverless environment, you can also use our newĀ [serverless driver](https://www.prisma.io/docs/postgres/database/serverless-driver)Ā (Early Access).Ā Learn more about this in theĀ [docs](https://www.prisma.io/docs/postgres/database/direct-connections). + +## šŸŖ„Ā **Automated backup & restore for Prisma Postgres** + +Prisma Postgres' backup and restore mechanism has seen a major upgrade recently: You can now easily restore any previous backup via the UI in the Prisma Console. + +![image (16).png](/changelog/image-1c1347e1e24b43ebe2bc1134b8a6fe4ce1bc20b6-3304x1216-png-image-16-.png) + +Find the newĀ **Backups**Ā tab when viewing your database and select any backup from the list to restore its state to a previous point in time.Ā Learn more in theĀ [docs](https://www.prisma.io/docs/postgres/database/backups). + +## 🤯 **Prisma's VS Code extension now has a UI to manage Prisma Postgres** + +If you're using Prisma ORM, chances are that you're using ourĀ [VS Code extension](https://marketplace.visualstudio.com/items?itemName=Prisma.prisma)Ā too. In its latest release, we've added a major new capability to it: A UI for managing databases. + +![updated (1).png](/changelog/image-f7a4f862f7f12d96c98eafef1b6bf0f2d0cac943-3740x1964-png-updated-1-.png) + +With this new UI, you can: + +- Authenticate with theĀ [Prisma Console](https://console.prisma.io/) +- Create and delete remote Prisma Postgres instances +- View local Prisma Postgres instances +- View and edit data via an embedded Prisma Studio +- Visualize your database schema + +To use the new features, make sure to have the latest version of the Prisma VS Code extension installed and look out for the newĀ **Prisma logo**Ā in VS Code'sĀ *Activity Bar*. Learn more in theĀ [docs](https://www.prisma.io/docs/postgres/integrations/vscode-extension#database-management-ui). + +## **šŸ”Ā Major improvements for local Prisma Postgres (Preview)** + +In the last release, we enabled you to spin up a Prisma Postgres instance locally via the newĀ `prisma dev`Ā command.Ā [Local Prisma Postgres](https://www.prisma.io/blog/prisma-6-8-0-release#local-development-for-prisma-postgres-early-access)Ā uses PGlite under the hood and gives you an identical experience as you get with a remote Prisma Postgres instance. + +This release brings major improvements to this feature: + +- Persists your databases acrossĀ `prisma dev`Ā invocations. +- Enables you to have multiple local Prisma Postgres instances running at the same time. +- RunningĀ `prisma init`Ā now uses local Prisma Postgres by default. + +Try it out and let us know what you think.Ā Learn more about this feature in theĀ [docs](https://www.prisma.io/docs/postgres/database/local-development). + +## šŸŒŽ **New region for Prisma Postgres: San Francisco (`us-west-1`)** + +We keep expanding Prisma Postgres availability across the globe! After having added Singapore just a few weeks ago, we're now adding San Francisco based on anotherĀ [poll we ran on X](https://x.com/prisma/status/1924494260910612841). Here are all the regions where you can spin up Prisma Postgres instances today: + +- **`us-west-1`**: San Francisco (**new!**) +- `us-east-1`: North Virginia +- `eu-west-3`: Paris +- `ap-northeast-1`: Tokyo +- `ap-southeast-1`: Singapore + +[Keep an eye on our X account](https://pris.ly/x)Ā to take part in the poll and vote for the next availability zone of Prisma Postgres! + +## šŸ§‘ā€šŸš€Ā More from the Prismasphere + +#### šŸ’°Ā **Operations-Based Billing: A Simpler Pricing Model for Modern Databases** + +The simplicity of Prisma Postgres’ pricing model often surprises developers. In this article, we explain how the pricing works, why we think it’s better and how it makes for more predictable bills at the end of a month. + +[Read now](https://www.prisma.io/blog/operations-based-billing) + +#### šŸ¤”Ā **Why Prisma ORM Generates Code into Node Modules & Why It’ll Change** + +Prisma ORM historically generated its database client into `node_modules`. This article explains the reasons for the original decision, what we have learned since then, and what we are changing going forward. + +[Read now](https://www.prisma.io/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change) + +#### šŸ¤–Ā **Vibe Coding an E-commerce App with Prisma MCP and Next.js** + +AI tools are getting more and more powerful, but what are they *really* capable of? We took them to the test and build a fully fledged e-commerce app just by prompting. Read this article if you’re curious about how it turned out. + +[Read now](https://www.prisma.io/blog/vibe-coding-with-prisma-mcp-and-nextjs) diff --git a/apps/site/content/changelog/2025-06-17.mdx b/apps/site/content/changelog/2025-06-17.mdx new file mode 100644 index 0000000000..18b6935634 --- /dev/null +++ b/apps/site/content/changelog/2025-06-17.mdx @@ -0,0 +1,88 @@ +--- +title: "Prisma ORM v6.10.0: no Rust engines for MS SQL Server and PlanetScale" +date: "2025-06-17" +version: "v6.10.0" +slug: "2025-06-17" +headline: "Prisma ORM v6.10.0: no Rust engines for MS SQL Server and PlanetScale" +tags: + - "Prisma Postgres" + - "Prisma ORM" + - "MCP" +canonical: "/changelog#log2025-06-17" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.10.0: no Rust engines for MS SQL Server and PlanetScale + +We are in the process of [removing the Rust engines](https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine) from Prisma ORM. If you want to try this, you can configure your `generator` like this: + +```typescript +generator client { + provider = "prisma-client-js" // or `prisma-client` + output = "../generated/prisma" + previewFeatures = ["queryCompiler", "driverAdapters"] +} +``` + +In this release, we are excited to move the `queryCompiler` (which enables using Prisma ORM without Rust engines) into Preview for MS SQL Server and PlanetScale (via the new `@prisma/adapter-mssql` and existing `@prisma/adapter-planetscale` driver adapters). + +## šŸ”Ā Manage local Prisma Postgres instances in VS Code + +We recently released a [database management UI](https://www.prisma.io/docs/postgres/integrations/vscode-extension#database-management-ui) as part of the Prisma VS Code extension to enable visual database management workflows for [Prisma Postgres](https://www.prisma.io/postgres). In this release, we added new functionality to it: You can now manage multiple *local* Prisma Postgres instances via the same UI. + +![VS Code database UI showing multiple local Prisma Postgres instances](/changelog/image-6cffc085cf7d479b2f7e0b5b2655f9d3cf433d5b-3248x2050-png-local-ppg-annotated.png) + +To try it, find the Prisma logo in VS Code’s sidebar and start managing your local Prisma Postgres instances (no Docker required). + +## ā˜ļøĀ ā€œPush to Cloudā€: Easily deploy a local Prisma Postgres instance in VS Code + +Local Prisma Postgres instances are perfect for development, but how do you go *from local to remote* once you’re ready to deploy? + +![VS Code Push to Cloud flow for a local Prisma Postgres instance](/changelog/image-ac94c9e2d1e3410fcbc4416fdea233ab8b817734-3248x2050-png-push-to-cloud-annotated.png) + +The [database management UI in VS Code](https://www.prisma.io/docs/postgres/integrations/vscode-extension#database-management-ui) now has a **Push to Cloud** button that makes it easy to deploy your local Prisma Postgres so that you can connect to it from your deployed applications. + +## 🧩 Support for shard keys on PlanetScale (Preview) + +[Sharding](https://planetscale.com/docs/vitess/sharding) is a popular technique to scale up when database load grows. As of this release, [Prisma ORM supports sharding on PlanetScale natively](https://www.prisma.io/docs/orm/overview/databases/planetscale#how-to-define-shard-keys-in-your-prisma-schema-preview) via the new `@shardKey` and `@@shardKey` attributes in the Prisma schema which you can apply to the fields in your models that should serve as shard keys in your database setup: + +```typescript +// Single-column shard key +model User { + id String @default(uuid()) + region String @shardKey +} + +// Multi-column shard key +model Customer { + id String @default(uuid()) + country String + customerId String + @@shardKey([country, customerId]) +} +``` + +Note that this requires you to set the `shardKeys` Preview feature flag on your generator definition: `previewFeatures = ["shardKeys"]`. + +## ✨ Local Prisma Postgres now works with any ORM & tool (Early Access) + +We recently released [direct connections](https://www.prisma.io/docs/postgres/database/direct-connections) for *remote* Prisma Postgres so that you can now use it with your favorite ORM or database tool. As of this release, this is also possible for your *local* Prisma Postgres instances. To try it, run the `prisma dev` command and use the direct connection string starting with `postgres://` in order to connect from any tool. + +## šŸ¤–Ā Let your favorite AI tool manage Prisma Postgres via remote MCP + +We just released a new [*remote* MCP server](https://www.prisma.io/docs/postgres/integrations/mcp-server#remote-mcp-server) that helps you manage Prisma Postgres instances! It enables your AI tools to help with these workflows: + +- Managing databases and connection strings +- Creating and re-instantiating backups +- Querying databases via plain SQL +- Introspecting database schemas + +You can start it using the `npx -y mcp-remote https://mcp.prisma.io/mcp` command. + +Here the MCP server is in action, creating a new database directly in the [Warp AI terminal](https://www.warp.dev/): + +![Warp AI creating a Prisma Postgres database through the remote MCP server](/changelog/image-6f5fffc8528e9d079196ecbeca717908e0faba73-1212x720-gif-Warp.gif) diff --git a/apps/site/content/changelog/2025-07-02.mdx b/apps/site/content/changelog/2025-07-02.mdx new file mode 100644 index 0000000000..a8bcb00966 --- /dev/null +++ b/apps/site/content/changelog/2025-07-02.mdx @@ -0,0 +1,111 @@ +--- +title: "Prisma ORM v6.11.0: embed Prisma Studio in your React apps" +date: "2025-07-02" +version: "v6.11.0" +slug: "2025-07-02" +headline: "Prisma ORM v6.11.0: embed Prisma Studio in your React apps" +tags: + - "Prisma Postgres" + - "Prisma ORM" + - "Studio" +canonical: "/changelog#log2025-07-02" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.11.0: embed Prisma Studio in your React apps + +If you’re using Prisma Postgres (yourself or [by offering it to your own users](https://www.prisma.io/partners)), you can now embed Prisma Studio to offer an amazing data editing experience via the [`@prisma/studio-core`](https://www.npmjs.com/package/@prisma/studio-core) npm package. + +![Studio-component[LIGHT]@4x.png](/changelog/image-d2c35b8243dd6f86ff9a353d5bb64ad79510920f-2836x981-png-Studio-component-LIGHT-4x.png) + +Check out the [demo site](https://github.com/prisma/studio-core-demo) to see how Studio can be integrated in a React app with Vite and Hono. + +## šŸš€Ā Prisma ORM v6.11.0 release: No Rust engines for MySQL, Neon & CockroachDB in Preview + +We just released [Prisma ORM v6.11.0](https://pris.ly/release/6.11.0) and are excited to move the ā€œRust-free version of Prisma ORMā€ into Preview for our remaining [first-class databases](https://www.prisma.io/blog/prisma-orm-manifesto#1-defining-first-class-databases): MySQL/MariaDB, Neon and CockroachDB. + +If you want to try this, you can configure yourĀ `generator`Ā like this: + +```typescript +generator client { + provider = "prisma-client-js" // or `prisma-client` + previewFeatures = ["queryCompiler", "driverAdapters"] + output = "../generated/prisma" +} +``` + +No more hassle with query engines, binary targets and an even smoother experience in serverless and edge environments! Learn more about using this version of Prisma ORM with your favorite DB in the [docs](https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine). + +### šŸŒĀ New region for Prisma Postgres: Frankfurt (`eu-central-1`) + +We keep expanding Prisma Postgres availability across the globe! After having added San Francisco just a few weeks ago, we’re now adding Frankfurt based on another [poll we ran on X](https://x.com/prisma/status/1932784967945499021). Here are all the regions where you can spin up Prisma Postgres instances today: + +- **`eu-central-1`**: Frankfurt (**new!**) +- `eu-west-3`: Paris +- `us-west-1`: San Francisco +- `us-east-1`: North Virginia +- `ap-northeast-1`: Tokyo +- `ap-southeast-1`: Singapore + +[Keep an eye on our X account](https://pris.ly/x) to take part in the poll and vote for the next availability zone of Prisma Postgres! + +## ⚔ Connecting to Prisma Postgres with any tool is now faster + +We recently enabled the option to connect to Prisma Postgres with any tool via [direct connections](https://www.prisma.io/docs/postgres/database/direct-connections). In this release, we have reduced the connection latency so your first request is now even faster. + +## šŸ’°Ā Predict your Prisma Postgres bill with our new Pricing Calculator + +Prisma Postgres comes with a pricing model that seems too simple to be true: You're charged based on *operations*—not CPU, compute hours or any other resource-based metrics. + +![pricing-calculator.png](/changelog/image-a6a82eb9c6a5a6ab82a0d8073bf07032aa5d2fc9-2028x2082-png-pricing-calculator.png) + +While it's simple, it may feel unfamiliar because it's so different from existing pricing models. To understand how much you'd pay for Prisma Postgres running your app, you can now use our [Pricing Calculator](https://www.prisma.io/pricing?calculator). Put in the predicted storage and number of operations to see how much you’ll be charged on each plan. + +## ā¹ļøĀ Stop and remove local Prisma Postgres instances via CLI + +You can start a *local* Prisma Postgres instance using the `prisma dev --name mydb` command or via the Prisma VS Code extension UI. If you start a local instance via the Prisma CLI, you can simply kill the process to stop the instance. However, when you start instances via the VS Code extension UI, you could also *only* stop them via the UI—not via the CLI. + +This changes in this release: You can now also *stop* local Prisma Postgres instances and *remove* them from your file system via the Prisma CLI: + +- `prisma dev stop `: Stops one or more local Prisma Postgres instances +- `prisma dev rm `: Removes one or more local Prisma Postgres instances from your file system + +Learn more about these new commands in the [docs](https://www.prisma.io/docs/cli/dev). + +## šŸ‘Øā€šŸš€Ā More from the Prismasphere + +#### Prisma Postgres now available for *all* Postgres templates in Vercel Marketplace + +On [vercel.com/templates](http://vercel.com/templates), you can find lots of one-click-deploy application templates! We worked with the Vercel team to get Prisma Postgres working with *all* templates requiring a PostgreSQL database, for example: + +- [Next.js SaaS Starter with Drizzle ORM](https://vercel.com/templates/authentication/next-js-saas-starter) +- [Postgres SvelteKit Starter with Postgres.js](https://vercel.com/templates/svelte/postgres-sveltekit) +- [Next.js + PostgreSQL Auth Starter with Drizzle ORM](https://vercel.com/templates/authentication/drizzle-postgres-auth-starter) +- … and [a lot more](https://vercel.com/templates?search=postgres) + +#### **Optimizing Postgres for Global Apps** + +This article is a technical deep dive into low-level Postgres, written by our Staff Software Engineer [Tyler Benfield](https://x.com/rtbenfield). It unveils how we modernized the 25 year old PostgreSQL protocol and built a database that’s optimized for serverless deployments, multi-region applications, and modern network architectures. + +[Read now](https://www.prisma.io/blog/optimizing-postgres-for-global-apps) + +#### **How Bucket Uses Prisma ORM to Make Shipping Feature Releases Faster** + +Discover how [Bucket](https://bucket.co/), a fast-growing feature management platform, uses Prisma ORM to simplify complex relational queries and accelerate feature releases. Learn how their lean team delivers high-quality features faster while managing evolving database needs with ease. + +[Read now](https://www.prisma.io/blog/how-bucket-uses-prisma-orm) + +#### Ready-to-run examples for new `prisma-client` generator + +Our new [`prisma-client`](https://www.prisma.io/docs/orm/prisma-schema/overview/generators#prisma-client-early-access) generator is more flexible, provides more control about the generated code, works with various JS runtimes and comes with ESM support out-of-the-box. + +To make it easier for you to try it out, we created a few ready-to-run example projects so you can see the new generator in action: + +- [`nextjs-starter-webpack`](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/nextjs-starter-webpack) +- [`nextjs-starter-turbopack`](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/nextjs-starter-turbopack) +- [`nextjs-starter-webpack-monorepo`](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/nextjs-starter-webpack-monorepo) +- [`nextjs-starter-webpack-with-middleware`](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/nextjs-starter-webpack-with-middleware) diff --git a/apps/site/content/changelog/2025-07-17.mdx b/apps/site/content/changelog/2025-07-17.mdx new file mode 100644 index 0000000000..f4603197fd --- /dev/null +++ b/apps/site/content/changelog/2025-07-17.mdx @@ -0,0 +1,84 @@ +--- +title: "Prisma ORM v6.12.0: ESM-compatible prisma-client in Preview" +date: "2025-07-17" +version: "v6.12.0" +slug: "2025-07-17" +headline: "Prisma ORM v6.12.0: ESM-compatible prisma-client in Preview" +tags: + - "Prisma Postgres" + - "Prisma ORM" +canonical: "/changelog#log2025-07-17" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.12.0: ESM-compatible prisma-client in Preview + +#### ESM-compatible `prisma-client` generator now in Preview + +We’re excited to share that our new and more flexible [`prisma-client` generator](https://www.prisma.io/docs/orm/prisma-schema/overview/generators#prisma-client-early-access) is moving into [Preview](https://www.prisma.io/docs/orm/more/releases#preview)! As a reminder, here’s what it looks like: + +```typescript +generator client { + // Required + provider = "prisma-client" // no `-js` at the end! + output = "../src/generated/prisma" + + // Optional + runtime = "nodejs" + moduleFormat = "esm" + generatedFileExtension = "ts" + importFileExtension = "ts" +} + +``` + +This new generator eliminates any headaches that you may have experienced due to [magical code generation into `node_modules`](https://www.prisma.io/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change) and gives you full control over the generated Prisma Client code. With it moving into Preview, we hope that even more of you will try it out and share your feedback with us! + +**Note**: The `prisma-client` generator will become the default in Prisma v7, replacing the current `prisma-client-js` generator. + +In addition to moving it into Preview, we also created a couple of new ready-to-run examples to help you get started with the new generator and your favorite framework: + +- [React Router + Vite + Cloudflare](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/react-router-starter-cloudflare-workerd) +- [React Router + Vite + Node.js](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/react-router-starter-nodejs) +- [Nuxt 3 + Vite + Nitro](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/nuxt3-starter-nodejs) +- [Deno Deploy](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/deno-deploy) + +#### Specify locations for `views`, `migrations` and `typedSql` in Prisma Config (Early Access) + +As we’re getting closer to the [General Availability](https://www.prisma.io/docs/orm/more/releases#generally-available-ga) release of [`prisma.config.ts`](https://www.prisma.io/docs/orm/reference/prisma-config-reference), we’re adding more capabilities to it. In previous versions, the Prisma CLI implicitly used to infer the location for migration, SQL view definition and [TypedSQL query](https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/typedsql) files based on the location of the Prisma schema. In this release, we're adding three new fields (`migrations`, `views` and `typedSql`) to give you more flexibility and clarity on how the Prisma CLI should locate these files: + +```typescript +// prisma.config.ts +export default defineConfig({ + earlyAccess: true, + migrations: { + path: './db/migrations' + }, + views: { + path: './db/views' + }, + typedSql: { + path: './db/queries' + } + // ... +}) + +``` + +## **šŸ‘Øā€šŸš€**Ā More from the Prismasphere + +#### **How Co.dev Uses Prisma Postgres to Power AI-Driven App Development for Non-Developers** + +Co.dev (YC W23) lets non-developers build production-ready full-stack apps in minutes by combining AI-driven code generation with integrated tooling, powered byĀ Prisma Postgres and MCP server integration. + +[Read customer story](https://www.prisma.io/blog/how-co-dev-uses-prisma-postgres-to-power-ai-driven-app-development-for-non-developers) + +#### New videos on Prisma’s YouTube channel + +Did you know that we’re releasing several new videos with updates, demos, tips and tricks on our YouTube channel every week? Be sure to check it out and never miss anything that happens in the Prisma ecosystem! + +[Check out Prisma on YouTube](https://www.youtube.com/@PrismaData) diff --git a/apps/site/content/changelog/2025-07-30.mdx b/apps/site/content/changelog/2025-07-30.mdx new file mode 100644 index 0000000000..e1b2742f55 --- /dev/null +++ b/apps/site/content/changelog/2025-07-30.mdx @@ -0,0 +1,185 @@ +--- +title: "Prisma ORM v6.13.0: Prisma Config is now GA" +date: "2025-07-30" +version: "v6.13.0" +slug: "2025-07-30" +headline: "Prisma ORM v6.13.0: Prisma Config is now GA" +tags: + - "Prisma Postgres" + - "Prisma ORM" +canonical: "/changelog#log2025-07-30" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.13.0: Prisma Config is now GA + +#### šŸ“‚Ā Prisma Config is now Generally Available + +The [`prisma.config.ts`](https://www.prisma.io/docs/orm/reference/prisma-config-reference) file is Prisma ORM’s native way to provide configuration options for your project. The Prisma Config file now allows you to: + +- Define locations for Prisma-related assets: + - Prisma schema file + - Migrations + - SQL view definitions + - TypedSQL queries +- Set up a `seed` command to populate the database. +- Configure **externally managed tables** to be ignored by Prisma Migrate. +- Specify **driver adapters** for Prisma CLI database interactions. +- Remove `earlyAccess` flag for stable projects. +- Opt into **Preview/Early Access** features via the new `experimental` field (e.g., adapters). +- Support for multiple file extensions: `.js`, `.ts`, `.mjs`, `.cjs`, `.mts`, `.cts`, and `.config/prisma.\{ext\}`. + +Here’s an example Prisma Config file that specified custom locations for various project assets in and a seed script inside a `db` directory: + +```typescript +import path from "node:path"; +import { defineConfig } from "prisma/config"; + +export default defineConfig({ + schema: path.join("db", "schema.prisma"), + migrations: { + path: path.join("db", "migrations"), + seed: "tsx db/seed.ts" + }, +}); +``` + +šŸ“šĀ Learn more [in the docs](https://www.prisma.io/docs/orm/reference/prisma-config-reference). + +#### šŸ—„ļøĀ Multi-schema feature is now Generally Available + +Databases like PostgreSQL or SQL Server provide a way to logically organize your tables in dedicated namespaces called *schemas*. In Prisma ORM, you can assign tables to various schemas via the `@@schema` attribute: + +```css +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") + schemas = ["base", "shop"] +} + +model User { + id Int @id + orders Order[] + + @@schema("base") +} + +model Order { + id Int @id + user User @relation(fields: [userId], references: [id]) + userId Int + + @@schema("shop") +} + +``` + +šŸ“šĀ Learn more [in the docs](https://www.prisma.io/docs/orm/prisma-schema/data-model/multi-schema). + +#### šŸ“¶Ā Externally managed tables + +Sometimes, you may not want Prisma ORM to manage certain tables because they’re handled by another team or external service. + +With this release, you can mark tables as **externally managed** and they’ll be: + +- ignored by Prisma Migrate +- still queryable via Prisma Client + +You can now use the `tables` option in `prisma.config.ts` to specify which tables Prisma Migrate should ignore: + +```typescript +// prisma.config.ts + export default defineConfig({ + tables: { + external: [ + "users", + ] + }, +}) + +``` + +A typical use case for this is the [`users` table from Supabase](https://supabase.com/docs/guides/auth/managing-user-data) which you never want be changed by Prisma Migrate but still may want to query with Prisma Client. + +šŸ“šĀ Learn more [in the docs](https://www.prisma.io/docs/orm/prisma-schema/data-model/externally-managed-tables). + +#### šŸ”Ā More robust support for SQL views (Preview) + +SQL views are virtual tables, showing the results of a stored query without storing data themselves. We’re making SQL views support in Prisma ORM more robust by removing incompatible attributes (`@id`, `@index`, `@unique`) and turning off features that don’t apply to native SQL views, such as `findUnique`, cursor pagination, writes, implicit ordering, and relationships. + +These updates align Prisma ORM’s API with how SQL views truly work, giving you a safer and more predictable experience. + +šŸ“š Learn more [in the docs](https://www.prisma.io/docs/orm/prisma-schema/data-model/views). + +## šŸ¹ `pgvector` extension support for Prisma Postgres (Early Access) + +It enables efficient storage and querying of high-dimensional vector embeddings directly in a Postgres database and thus is perfect for building AI-driven applications. `pgvector` essentially allows developers to perform similarity search (e.g., for recommendation systems or semantic search) using standard SQL, eliminating the need for a separate vector database. + +Native support for `pgvector` in Prisma ORM is going to follow soon, until then you can use `pgvector` via [custom migrations](https://www.prisma.io/docs/orm/prisma-migrate/workflows/customizing-migrations) and [TypedSQL](https://www.prisma.io/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm). + +šŸ“šĀ Learn more [in the docs](https://www.prisma.io/docs/postgres/database/postgres-extensions). + +## šŸ”ŒĀ Manage Prisma Postgres programmatically via an API + +Need to provision a Prisma Postgres instance in CI/CD, attach a fresh database to a preview branch, or offer Prisma Postgres to your users? The new Management API makes it easy. + +With a familiar REST interface, you can programmatically provision or delete instances, create or retrieve connection strings, and manage entire projects in [Prisma Console](https://console.prisma.io/). + +šŸ“šĀ Learn more [in the docs](https://www.prisma.io/docs/postgres/database/api-reference/management-api). + +## ā™»ļøĀ CI/CD GitHub Actions for Prisma Postgres available on GitHub Marketplace + +We’ve released two GitHub Actions, built on the Management API, to simplify Prisma Postgres integration in your CI/CD workflows: + +- [**Create Prisma Postgres Database Action**](https://github.com/marketplace/actions/create-prisma-postgres-database) +- [**Delete Prisma Postgres Database Action**](https://github.com/marketplace/actions/delete-prisma-postgres-database) + +These Actions serve as the foundational building blocks for integrating Prisma Postgres into CI/CD pipelines. + +![image (2).png](/changelog/image-d08557fd614a1bcf64b7c3f55bd81d799443f426-2040x1618-png-image-2-.png) + +These Actions make it easy to provision databases on pull requests, run integration tests against real instances, and manage database lifecycles. The READMEs includes examples to help you get started quickly, with minimal setup required. + +## šŸŽļøĀ Instant Postgres with `npx create-db` — no auth required + +We launched a new CLI command that allows you to spin up a new database instantly: + +```sh +npx create-db # no auth required +``` + +The command doesn’t require authentication, so you can play around with your database without any initial hurdles! + +![create-db.gif](/changelog/image-bd1a52263c6e36773fe0c4b003a81298d7f175f4-800x450-gif-create-db.gif) + +Your instance will be automatically deleted after 24 hours *but* you can claim it and put it into your [Prisma Console](https://console.prisma.io) account if you want to keep using it after that period. Learn more [in the docs](https://www.prisma.io/docs/postgres/introduction/npx-create-db). + +## 🧭 New navigation UI for Prisma Console + +The [Prisma Console](https://console.prisma.io) got a little makeover, including a new design for navigating and managing your projects and their databases. This makes common workflows like *creating new projects*, *navigating between projects and databases*, as well as *accessing project settings* a lot more smooth. + +![new_ui.png](/changelog/image-a3438ae7d08cb86d8ac9db19dc2ad2ac4edf2c4c-3070x1866-png-new_ui.png) + +We’re eager to hear your feedback, [let us know on X](https://pris.ly/x) what you think of the new UI. + +## šŸ§‘ā€šŸš€Ā More from the Prismaverse + +#### šŸ¤–Ā **Why SiteGPT Chose Prisma Postgres for Scalable AI-Powered Chatbots** + +SiteGPT helps businesses create AI-powered chatbots trained on their own content, websites, documentation, or internal data. These chatbots act as the first line of support for customers, handling requests with contextual accuracy. + +Read [the customer story](https://www.prisma.io/blog/why-sitegpt-chose-prisma-postgres-for-scalable-ai-powered-chatbots) to learn why they chose Prisma Postgres as their database. + +#### šŸ¦€Ā **Prisma ORM without Rust: Latest Performance Benchmarks** + +Our move from Rust to TypeScript in the Prisma ORM internals is now in Preview for all first-class databases! In this article, we’re sharing the performance improvements we observed in our latest benchmarks and give an outlook for Prisma v7 where the ORM will become ā€œRust-freeā€ by default. + +Check out [the article](https://www.prisma.io/blog/prisma-orm-without-rust-latest-performance-benchmarks) to explore the benchmarks and see what’s next. + +## šŸ¢Ā Enterprise support + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join: [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-08-13.mdx b/apps/site/content/changelog/2025-08-13.mdx new file mode 100644 index 0000000000..960cc7f585 --- /dev/null +++ b/apps/site/content/changelog/2025-08-13.mdx @@ -0,0 +1,41 @@ +--- +title: "Prisma ORM v6.14.0: SQL views get @unique, relationships, and cursor pagination" +date: "2025-08-13" +version: "v6.14.0" +slug: "2025-08-13" +headline: "Prisma ORM v6.14.0: SQL views get @unique, relationships, and cursor pagination" +tags: + - "Prisma Postgres" + - "Prisma ORM" +canonical: "/changelog#log2025-08-13" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.14.0: SQL views get `@unique`, relationships, and cursor pagination + +[Last release](https://pris.ly/release/6.13.0), we improved the robustness of [SQL views](https://www.prisma.io/docs/orm/prisma-schema/data-model/views) defined in the Prisma schema. Views are *virtual* tables that don’t allow for defining foreign keys in the underlying database. + +However, as an application developer, it can be convenient to also define relations across them. We’ve received this feedback from several people who had been using views in that way with Prisma ORM, so in this release we’re re-introducing the `@unique` attribute for views. This attribute enables: + +- relationships involving views in the Prisma schema +- `findUnique` queries, cursor-based pagination and implicit ordering for views in the Prisma Client API + +## šŸ’ŖĀ Increased robustness of Management API (Early Access) + +We recently released an [API for programmatically managing Prisma Postgres instances](https://www.prisma.io/docs/postgres/introduction/management-api) that’s perfect for CI/CD workflows and scripting. + +In this release, we made it more robust and are bringing it closer to its General Availability release. + +## āœ…Ā Revoke OAuth tokens in Prisma Console + +If you use OAuth to authorize third-party applications to act on your behalf in the Prisma Console, you can now revoke any app’s access at any time. The Prisma Console shows a list of your authorized (connected) apps, and you can easily remove one to immediately block further access. + +## **🌟 How MasterBoard simplified CI/CD testing with Prisma Postgres** + +MasterBoard, a startup building software for hydraulics repair shops, switched from AWS to Prisma Postgres to simplify their CI/CD workflows. The move reduced infrastructure overhead, simplified testing and deployment, and gave both developers and testers faster, hassle-free workflows. + +[Read now](https://www.prisma.io/blog/how-masterboard-simplified-ci-cd-testing-with-prisma-postgres) diff --git a/apps/site/content/changelog/2025-08-27.mdx b/apps/site/content/changelog/2025-08-27.mdx new file mode 100644 index 0000000000..5c3f45fb35 --- /dev/null +++ b/apps/site/content/changelog/2025-08-27.mdx @@ -0,0 +1,84 @@ +--- +title: "Prisma ORM v6.15.0: AI guardrails prevent database resets" +date: "2025-08-27" +version: "v6.15.0" +slug: "2025-08-27" +headline: "Prisma ORM v6.15.0: AI guardrails prevent database resets" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2025-08-27" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.15.0: AI guardrails prevent database resets + +Prisma ORM now includes built-in safety checks that protect against destructive commands when triggered by AI coding assistants. The CLI can recognize when it is being executed by popular AI agents such as Claude Code, Gemini CLI, Qwen Code, Cursor, Aider and Replit. + +If a command like `prisma migrate reset --force` is attempted, Prisma ORM will prompt for explicit confirmation before proceeding. + +![reset-db.gif](/changelog/image-6e96adf6edf9a2019424eba3ab11054927abc353-1668x1080-gif-reset-db.gif) + +This feature ensures that irreversible operations which drop and recreate the database are not executed automatically by an AI tool. Prisma ORM is the first ORM to provide this level of protection, making it safer to use AI-assisted development while working with your databases. + +## ⚔ `prisma-client`: runtime improvements and schema flexibility + +We simplified Prisma ORM by making the runtime options for the Prisma Client more consistent and easier to understand. Previously there were several overlapping aliases which created confusion. With this release we simplified the inputs while keeping support for all the major environments you might be targeting. + +Changes include: + +- `node` has been removed, use `runtime = "nodejs"` instead +- `deno-deploy` has been removed, use `runtime = "deno"` instead +- `vercel` has been replaced by the new `runtime = "vercel-edge"` +- `edge-light` is now just an alias for `vercel-edge` +- `nodejs`, `deno`, and `bun` now share the same internal code path, while still keeping their separate input values for clarity +- The VS Code extension has been updated to reflect these changes + +The updated list of supported runtimes is now: + +`nodejs`, `deno`, `bun`, `workerd` (alias `cloudflare`), `vercel-edge` (alias `edge-light`), and `react-native`. + +## šŸš€ Prisma Postgres Management API is Generally Available + +The Prisma Postgres Management API allows you to [programmatically](https://www.prisma.io/docs/guides/management-api-basic) provision and manage Prisma Postgres instances. It’s the perfect way to spin up a database in your CI/CD workflow, see our GitHub Action examples for [creating](https://github.com/marketplace/actions/create-prisma-postgres-database) and [deleting](https://github.com/marketplace/actions/delete-prisma-postgres-database) if you’re curious about this use case. + +We’re excited to share that the Management API is now fully ready for production. With it moving into GA, we also added another piece of functionality where you can now create new projects without a default database. + +We’re looking forward to seeing what you’re going to build with it! + +The [database UI](https://www.prisma.io/docs/postgres/integrations/vscode-extension#database-management-ui) of [Prisma’s VS Code extension](https://marketplace.visualstudio.com/items?itemName=Prisma.prisma) previously required a login to Prisma Console. We have now removed this restriction so that you can e.g. manage [local Prisma Postgres instances](https://www.prisma.io/docs/postgres/database/local-development) without any further friction. + +## ✨ **Prisma Postgres is now available on Pipedream** + +Prisma Postgres can now be used directly in your Pipedream workflows šŸŽ‰ + +With this integration, you can connect Prisma Postgres to over 2,800+ apps supported on Pipedream, enabling powerful automations and data workflows. For example, you can: + +- Automatically spin up a new Prisma Postgres database when a customer signs up in Stripe. +- Connect Prisma Postgres with Slack, Notion, Airtable, or any other app in the Pipedream ecosystem + +This makes it easier than ever to use Prisma Postgres in your automation pipelines, without needing to manage custom scripts or infrastructure. + +## šŸ‘€Ā **Direct connections to Prisma Postgres are coming close to GA** + +Direct connections enable you to connect to your database using any ORM library or tool of your choice (e.g. Drizzle ORM, Kysely but also database GUIs like Postico or TablePlus). + +In this release, we’ve improved the robustness of direct TCP connections and are close to bringing it to General Availability. + +## 🌟 **New `--json` flag for `npx create-db`** + +TheĀ `npx create-db`Ā command lets you spin up a temporary, production-ready Prisma Postgres database that you can later claim for continued use. With this release, you can now add theĀ `--json`Ā flag to return the database details in JSON format. + +![create-db.gif](/changelog/image-9a99ba8aa9c6b70479608f1693544eb1159acf22-1404x1080-gif-create-db.gif) + +This makes it straightforward to programmatically use the connection details, whether you are building custom APIs or integrating database provisioning into your workflows. + +## šŸ¢Ā **Enterprise support** + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-09-10.mdx b/apps/site/content/changelog/2025-09-10.mdx new file mode 100644 index 0000000000..a71109090f --- /dev/null +++ b/apps/site/content/changelog/2025-09-10.mdx @@ -0,0 +1,105 @@ +--- +title: "Prisma ORM v6.16.0: Rust-free ORM and driver adapters are GA" +date: "2025-09-10" +version: "v6.16.0" +slug: "2025-09-10" +headline: "Prisma ORM v6.16.0: Rust-free ORM and driver adapters are GA" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2025-09-10" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.16.0: Rust-free ORM and driver adapters are GA + +Eight months ago, we published our [ORM manifesto](https://www.prisma.io/blog/prisma-orm-manifesto) with the first hint that we’re going to remove the Rust-based query engine from Prisma ORM: + +*We’re addressing this by migrating Prisma’s core logic from Rust to TypeScript and redesigning the ORM to make customization and extension easier.* + +After a lot of hard work and feedback from the community, we’re incredibly excited to share that the migration has been completed and you can now use Prisma ORM without its Rust engine in your production apps. šŸŽ‰Ā This is a major milestone in the history of Prisma ORM and comes with a lot of benefits: + +- Lower bundle size +- Faster queries (check out our [latest benchmarks](https://www.prisma.io/blog/prisma-orm-without-rust-latest-performance-benchmarks)) +- Lower CPU footprint +- Less deployment complexity +- Easier to make open-source contributions + +… and overall a much better DX since you don’t need to worry about the extra binary in your generated Prisma Client code any more. + +Learn how to get started with your favorite database in the [docs](https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine). + +## 🄳 New ESM-first `prisma-client` generator is Generally Available + +Another major milestone has been achieved in this release: The new, flexible and ESM-first [`prisma-client`](https://www.prisma.io/docs/orm/prisma-schema/overview/generators#prisma-client-preview) generator is ready for production too. Here’s a quick overview of its main benefits: + +- No more [magic generation into `node_modules`](https://www.prisma.io/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change); generated code is fully under control by the developer +- ESM-compatible by default +- Flexible configuration for specific runtimes (Node.js, Deno, Bun, Cloudflare, …) + +```typescript +generator client { + // Required + provider = "prisma-client" + output = "../src/generated/prisma" + + // Optional + engineType = "client" + runtime = "nodejs" + moduleFormat = "esm" + generatedFileExtension = "ts" + importFileExtension = "ts" +} +``` + +## āš ļø Deprecating the `postgresqlExtensions` Preview feature + +We’re deprecating the `postgresqlExtensions` Preview feature. Note that this doesn’t mean that you can’t use extensions with Prisma ORM any more. Instead of setting the Preview feature, you can install extensions manually with a [customized migration](https://www.prisma.io/docs/orm/prisma-migrate/workflows/customizing-migrations) via the `--create-only` flag: + +```text +npx prisma migrate dev --name add-extension --create-only +``` + +You can then install an extension with plain SQL in the newly created, empty migration file: + +```sql +CREATE EXTENSION IF NOT EXISTS "pgcrypto"; +``` + +## āš”ļø Prisma ORM beats Drizzle in type checking performance + +Runtime performance is not the only performance category that matters. In fact, when it comes to DX, which is close to our heart at Prisma, *type checking performance* is equally important: if your TypeScript types become too complex and the compiler needs to do too much work (e.g. inferring types), it may slow down your editor, lead to laggy auto-completion or prevent jump-to-definition from working. + +We've worked with TypeScript expert [David Blass](https://x.com/ssalbdivad) to find ways for improving the type checking performance in Prisma ORM and created [benchmarks](https://pris.ly/type-benchmarks) comparing the type checking performance with Drizzle. + +## šŸ” Manage OAuth apps in Prisma Console + +[In Prisma Console](https://console.prisma.io), you can now manage all of the 3rd party applications that you’ve granted access to perform actions on behalf of yourself in your Prisma Console account. Find the 🧩 **Integrations** tab in the sidenav to see which applications currently have access. + +If you're creating OAuth apps to offer Prisma Postgres to your own users, [consider becoming an official partner](https://www.prisma.io/partners)! As a partner, you'll be eligible to dedicated partner plans giving you special pricing offers to support your growth! + +## šŸ“£ Rust-free Prisma ORM with Prisma Accelerate and Prisma Postgres + +With this release, the Rust-free Prisma ORM (Query Compiler) can now be used together with Prisma Postgres and also Prisma Accelerate. This means you can take advantage of connection pooling and caching while using the new TypeScript-based ORM architecture. + +To enable it, update your Prisma schema: + +```typescript +generator client { + provider = "prisma-client" + output = "../src/generated/prisma" + engineType = "client" +} +``` + +We’d love for you to try this out and share your feedback as we prepare for General Availability. Please [open an issue on GitHub](https://github.com/prisma/prisma/issues) if you encounter any problems or have suggestions. + +## **šŸ¤ Enterprise support** + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-10-08.mdx b/apps/site/content/changelog/2025-10-08.mdx new file mode 100644 index 0000000000..ec81dd9872 --- /dev/null +++ b/apps/site/content/changelog/2025-10-08.mdx @@ -0,0 +1,80 @@ +--- +title: "Prisma ORM v6.17.0: Prisma Postgres works with any tool" +date: "2025-10-08" +version: "v6.17.0" +slug: "2025-10-08" +headline: "Prisma ORM v6.17.0: Prisma Postgres works with any tool" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2025-10-08" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.17.0: Prisma Postgres works with any tool + +Previously, the *only* way to connect to Prisma Postgres was using Prisma ORM. That combination is great because it gives you connection pooling, global caching and overall an amazing DX. + +That being said, preferences may vary and some developers prefer to use plain SQL or lower-level query builders in their applications. As of this release, these ways for connecting to Prisma Postgres are now officially Generally Available (GA) and can be used in your production apps! + +You can now connect to Prisma Postgres using Drizzle, Kysely, TypeORM,Ā `psql`, orĀ anyĀ otherĀ Postgres-compatible library, database migrationĀ [tools like Atlas](https://atlasgo.io/)Ā or interfaces like DBeaver, Postico, and more. + +![image.png](/changelog/image-1b4d23d5d2d93055fe604b9767ae70064dd6b041-2470x1030-png-image.png) + +## šŸ“ŠĀ New usage metrics available in Console Dashboard + +The Dashboard in Prisma Console now gives you a clear, at-a-glance view of Prisma Postgres usage so you can make faster, smarter decisions. + +Here’s what’s new: + +- Key metrics + - Estimated upcoming invoice + - Total storage used + - Total DBs +- Overall usage + - Cumulative operations + - Operations per day + +## šŸ›Ā **Bug fixes and improvements in Prisma ORM v6.17.0** + +Prisma ORM [v6.17.0](https://pris.ly/6.17.0) comes with a lot of bug fixes and improvements: + +- Added support for Entra ID (ActiveDirectory) authentication parameters for the MS SQL Server driver adapter. For example, you can use the `config` object to configure [DefaultAzureCredential](https://learn.microsoft.com/en-gb/azure/developer/javascript/sdk/authentication/credential-chains#use-defaultazurecredential-for-flexibility): Learn more in this [PR](https://github.com/prisma/prisma/pull/28156/files#diff-351f5d894309f058776099c378e3956271f34f34c04e2b54576045b9773ab61aR61-R62). + +```typescript +import { PrismaMssql } from '@prisma/adapter-mssql' +import { PrismaClient } from '@prisma/client' + +const config = { + server: 'localhost', + port: 1433, + database: 'mydb', + authentication: { + type: 'azure-active-directory-default', + }, + options: { + encrypt: true, + }, +} + +const adapter = new PrismaMssql(config) +const prisma = new PrismaClient({ adapter }) + +``` + +- Relaxed the support package range forĀ `@opentelemetry/instrumentation`Ā to be compatible withĀ `">=0.52.0 <1"`. Learn more in thisĀ [PR](https://github.com/prisma/prisma/pull/28199/files). +- Added Codex CLI detection, ensuring dangerous Prisma operations are not executed by Codex without explicit user consent. Learn more in thisĀ [PR](https://github.com/prisma/prisma/pull/28159). +- Fixed JSON column handling when using a MariaDB database. Learn more in thisĀ [PR](https://github.com/prisma/prisma/pull/28211). +- Restored the original behaviour of group-by aggregations where they would refer to columns with explicit table names which fixes a regression that would result in ambiguous column errors. Learn more in thisĀ [PR](https://github.com/prisma/prisma-engines/pull/5629). + +We are working hard on the upcoming Prisma v7 release! If you’re curious, you can learn more and start preparing for the future of Prisma ORM [here](https://pris.ly/launch/6.17.0). + +## šŸ¢Ā **Enterprise support** + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-10-22.mdx b/apps/site/content/changelog/2025-10-22.mdx new file mode 100644 index 0000000000..d900a13c4d --- /dev/null +++ b/apps/site/content/changelog/2025-10-22.mdx @@ -0,0 +1,60 @@ +--- +title: "Prisma ORM v6.18.0: prisma init now creates prisma.config.ts" +date: "2025-10-22" +version: "v6.18.0" +slug: "2025-10-22" +headline: "Prisma ORM v6.18.0: prisma init now creates prisma.config.ts" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2025-10-22" +share: + active: true + content: "Prisma ORM v6.18.0 is out and `prisma init` now creates `prisma.config.ts`." +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.18.0: `prisma init` now creates a `prisma.config.ts` + +When creating a new project with 6.18.0, `prisma init` will now create a `prisma.config.ts` file automatically. This prepares new applications for the future of Prisma 7. Some fields that have been historically set in the `schema.prisma` file are now available in the `prisma.config.ts`, and we encourage people to migrate over to the new structure before the release of version 7, where this file will become a requirement. + +## Support for defining your `datasource` in `prisma.config.ts` + +If you’re adopting the new `prisma.config.ts` setup in your projects, version 6.18.0 brings the ability to set your datasource directly in your config file. Once this is in your config file, any datasource set in your `schema.prisma` will be ignored. To set the datasource, we also must include the new `engine` key which we can set to `"classic"`, which will be required for Prisma v7 + +```typescript +import { defineConfig, env } from "prisma/config"; +export default defineConfig({ + // The Rust-compiled schema engine + engine: "classic", + datasource: { + url: env('DATABASE_URL'), + } +}); +``` + +- [\#28291](https://github.com/prisma/prisma/pull/28291) Support multiple Prisma instances with different providers +- [\#28305](https://github.com/prisma/prisma/pull/28305) Add `env` helper function +- [\#28266](https://github.com/prisma/prisma/pull/28266) Add support for `js` or `classic` as engine types in `prisma.config` +- [\#28139](https://github.com/prisma/prisma/pull/28139) Map `Bytes` to `Uint8Array` depending on Typescript version + +### Database Metric in Console + +Inside your database console, you can now view metrics on your database usage and interactions. You can get insights into the following: + +- Total egress +- Average response size +- Average query duration + +In addition, you can also get insights into how to improve your query caching and gain better performance. + +## Open roles at Prisma + +Interested in joining Prisma? We’re growing and have several exciting opportunities across the company for developers who are passionate about building with Prisma. Explore our open positions on ourĀ [Careers page](https://www.prisma.io/careers#current)Ā and find the role that’s right for you. + +## Enterprise support + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-11-05.mdx b/apps/site/content/changelog/2025-11-05.mdx new file mode 100644 index 0000000000..812efb9772 --- /dev/null +++ b/apps/site/content/changelog/2025-11-05.mdx @@ -0,0 +1,50 @@ +--- +title: "Prisma ORM v6.19.0: connection pooling for Prisma Postgres" +date: "2025-11-05" +version: "v6.19.0" +slug: "2025-11-05" +headline: "Prisma ORM v6.19.0: connection pooling for Prisma Postgres" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2025-11-05" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v6.19.0: connection pooling for Prisma Postgres + +Prisma ORM is the most popular ORM in the TypeScript ecosystem. Today’s release brings a bunch of new bug fixes and overall improvements: + +- [\#5675](https://github.com/prisma/prisma-engines/pull/5675): When dropping a model from a schema, do not append the default schema to the migration. +- [\#5656](https://github.com/prisma/prisma-engines/pull/5656): Aligning naming conventions for fields and relation fields +- [\#28341](https://github.com/prisma/prisma/pull/28341): Add biome ignore comments to generated client files. This was a community contribution from [@lonelyevil](https://github.com/lonelyevil), thank you! + +## Prisma Postgres + +[Prisma Postgres](https://www.prisma.io/postgres)Ā is our fully managed Postgres service, designed with the same philosophy of great DX that has guided Prisma for close to a decade. With this release, we are introducing the following improvements: + +**Connection pooling with Prisma Postgres** + +We added support for direct connections in 6.17, opening Prisma Postgres up to working with any tool in the wider Postgres ecosystem. Now, you can confirm that connection to support connection pooling by appending the query parameter `pool=true` to the connection string. + +```text +postgres://555555..../postgres?sslmode=require&pool=true +``` + +## VSCode extension + +A frequently requested feature is to be able to use a [local Prisma Postgres database](https://www.prisma.io/docs/postgres/database/local-development) within our VS Code Extension without having to log in. In this release, we’re happy to share that this is now supported! Now you can work on your project without having to connect to the database remotely. + +![Screenshot 2025-10-31 at 3.56.59 PM.png](/changelog/image-000a48b9be0569e18d23dd3c38c25fb2af113b9e-3840x1632-png-Screenshot-2025-10-31-at-3.56.59-PM.png) + +[\#1924](https://github.com/prisma/language-tools/pull/1924): **previewFeatures = "" suggestion results in "\[\]" value** + +## Enterprise support + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-11-19.mdx b/apps/site/content/changelog/2025-11-19.mdx new file mode 100644 index 0000000000..134c3e209d --- /dev/null +++ b/apps/site/content/changelog/2025-11-19.mdx @@ -0,0 +1,316 @@ +--- +title: "Prisma ORM v7.0.0: Rust-free Prisma Client becomes the default" +date: "2025-11-19" +version: "v7.0.0" +slug: "2025-11-19" +headline: "Prisma ORM v7.0.0: Rust-free Prisma Client becomes the default" +tags: + - "Prisma ORM" + - "Prisma Postgres" +canonical: "/changelog#log2025-11-19" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v7.0.0: Rust-free Prisma Client becomes the default + +**Rust-free Prisma Client as the default** + +The Rust-free Prisma Client has been in the works for some time now, all the way [back to v6.16.0](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6), with early iterations being available for developers to adopt. Now with version 7.0, we’re making this the default for all new projects. With this, developers are able to get: + +- ~90% smaller bundle sizes +- Up to 3x faster queries +- ESM-first Prisma Client +- Significantly simpler deployments + +Adopting the new Rust-free client is as simple as swapping the `prisma-client-js` provider for `prisma-client` in your main `schema.prisma` : + +```text +// schema.prisma +generator client { +- provider = "prisma-client-js" ++ provider = "prisma-client" +} +``` + +**Generated Client and types move out of **`node_modules` + +When running `prisma generate`, the generated Client runtime and project types will now **require** a `output` path to be set in your project’s main `schema.prisma`. We recommend that they be generated inside of your project’s `src` directory to ensure that your existing tools are able to consume them like any other piece of code you might have. + +```text +// schema.prisma +generator client { + provider = "prisma-client" + // Generate my Client and Project types + output = "../src/generated/prisma" +} +``` + +Update your code to import PrismaClient from this generated output: + +```typescript +// Import from the generated prisma client +import { PrismaClient } from './generated/prisma/client'; +``` + +For developers who still need to stay on `prisma-client-js` but are using the new output option, there’s a new required package, `@prisma/client-runtime-utils`, which needs to be installed: + +```sh +# for prisma-client-js users only +npm install @prisma/client-runtime-utils +``` + +## `prisma generate` changes and post-install hook removal + +For `prisma generate` , we’ve removed a few flags that were no longer needed: + +- `prisma generate --data-proxy` +- `prisma generate --accelerate` +- `prisma generate --no-engine` +- `prisma generate --allow-no-models` + +In previous releases, there was a post-install hook that we utilized to automatically generate your project’s Client and types. With modern package managers like pnpm, this actually has introduced more problems than it has solved. So we’ve removed this post-install hook and now require developers to explicitly call `prisma generate` . + +As a part of those changes, we’ve also removed the implicit run of `prisma db seed` in-between `migrate` commands. + +**Prisma Client** + +As part of the move to a Rust-free Prisma Client, we moved away from embedding the drivers of the databases that we support. Now developers explicitly provide the driver adapters they need for their project, right in their source code. For PostgreSQL, simply install `@prisma/adapter-pg` in your project, configure the connection string, and pass it when creating the Prisma Client: + +```typescript +// Import from the generated prisma client +import { PrismaClient } from './generated/prisma/client'; + +// Driver Adapter for Postgres +import { PrismaPg } from '@prisma/adapter-pg'; + +const adapter = new PrismaPg({ + connectionString: process.env.DATABASE_URL!, +}); + +export const prisma = new PrismaClient({ adapter }); +``` + +For other databases: + +```typescript +// If using SQLite +import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'; +const adapter = new PrismaBetterSqlite3({ + url: process.env.DATABASE_URL || 'file:./dev.db' +}) + +// If using MySql +import { PrismaMariaDb } from '@prisma/adapter-mariadb'; +const adapter = new PrismaMariaDb({ + host: "localhost", + port: 3306, + connectionLimit: 5 +}); +``` + +We’ve also removed support for additional options when configuring your Prisma Client + +- `new PrismaClient({ datasources: .. })` support has been removed +- `new PrismaClient({datasourceUrl: ..})` support has been removed + +**Driver Adapter naming updates** + +We’ve standardized our naming conventions for the various driver adapters internally. The following driver adapters have been updated: + +- `PrismaBetterSQLite3` ⇒ `PrismaBetterSqlite3` +- `PrismaD1HTTP` ⇒ `PrismaD1Http` +- `PrismaLibSQL` ⇒ `PrismaLibSql` +- `PrismaNeonHTTP` ⇒ `PrismaNeonHttp` + +**Schema and config file updates** + +As part of a larger change in how the Prisma CLI reads your project configuration, we’ve updated what gets set in the schema and what gets set in `prisma.config.ts`. Also as part of this release, `prisma.config.ts` is now required for projects looking to perform introspection. + +**Schema changes** + +- `datasource.url` is now configured in the config file +- `datasource.shadowDatabaseUrl` is now configured in the config file +- `datasource.directUrl` is no longer needed and has been removed +- `generator.runtime=ā€react-nativeā€` has been removed + +For early adopters of the config file, a few things have been removed with this release + +- `engine: 'js'| 'classic'` has been removed +- `adapter` has been removed + +A brief before/after: + +```text +// schema.prisma +datasource db { + provider = "postgresql" + url = ".." + directUrl = ".." + shadowDatabaseUrl = ".." +} +``` + +```typescript +// ./prisma.config.ts +export default defineConfig({ + datasource: { + url: '..', + shadowDatabaseUrl: '..', + } +}) +``` + +**Explicit loading of environment variables** + +As part of the move to Prisma config, we’re no longer automatically loading environment variables when invoking the Prisma CLI. Instead, developers can utilize libraries like `dotenv` to manage their environment variables and load them as they need. This means you can have dedicated local environment variables or ones set only for production. This removes any accidental loading of environment variables while giving developers full control. + +## Removed support for `prisma` keyword in `package.json` + +In previous releases, users could configure their schema entry point and seed script in a `prisma` block in the `package.json` of their project. With the move to `prisma.config.ts`, this no longer makes sense and has been removed. To migrate, utilize the Prisma config instead: + +```json +{ + "name": "my-project", + "version": "1.0.0", + "prisma": { + "schema": "./custom-path-to-schema/schema.prisma", + "seed": "tsx ./prisma/seed.ts" + } +} +``` + +```typescript +import 'dotenv/config' +import { defineConfig, env } from "prisma/config"; +export default defineConfig({ + schema: "prisma/schema.prisma", + migrations: { + seed: "tsx prisma/seed.ts" + }, + datasource: { + url: env("DATABASE_URL"), + }, +}); +``` + +**Removed Client Engines** + +We’ve removed the following client engines: + +- `LibraryEngine` (`engineType = "library"`, the Node-API Client) +- `BinaryEngine` (`engineType = "binary"`, the long-running executable binary) +- `DataProxyEngine` and `AccelerateEngine` (Accelerate uses a new `RemoteExecutor` now) +- `ReactNativeEngine` + +**Deprecated metrics feature has been removed** + +We deprecated the previewFeature `metrics` some time ago, and have removed it fully for version 7. If you need metrics related data available, you can use the underlying driver adapter itself, like the Pool metric from the Postgres driver. + +**Mapped enums** + +If [you followed along on X](https://x.com/prisma/status/1988970132690071600), you will have seen that we teased a highly requested user feature was coming to v7.0. That highly requested feature is... mapped enums! We now support the `@map` attribute for enum members, which can be used to set their expected runtime values. + +```text +enum PaymentProvider { + MixplatSMS @map("mixplat/sms") + InternalToken @map("internal/token") + Offline @map("offline") + + @@map("payment_provider") +} +``` + +```typescript +export const PaymentProvider: { + MixplatSMS: 'mixplat/sms' + InternalToken: 'internal/token' + Offline: 'offline' +} +``` + +**Miscellaneous** + +- [\#28493](https://github.com/prisma/prisma/pull/28493): Stop shimming `WeakRef` in Cloudflare Workers. This will now avoid any unexpected memory leaks. +- [\#28297](https://github.com/prisma/prisma/pull/28297): Remove hardcoded URL validation. Users are now required to make sure they don’t include sensitive information in their config files. +- [\#28273](https://github.com/prisma/prisma/pull/28273): Removed Prisma v1 detection +- [\#28343](https://github.com/prisma/prisma/pull/28343): Remove undocumented `--url` flag from `prisma db pull` +- [\#28286](https://github.com/prisma/prisma/pull/28286): Remove deprecated `prisma introspect` command. +- [\#28480](https://github.com/prisma/prisma/pull/28480): Rename `/wasm` to `/edge` + - This change only affects `prisma-client-js` + - Before: + - `/edge` → meant ā€œfor Prisma Accelerateā€ + - `/wasm` → meant ā€œfor Edge JS runtimes (e.g., Cloudflare, Vercel Edge)ā€ + - After: + - `/edge` → means ā€œfor Edge JS runtimes (e.g., Cloudflare, Vercel Edge)ā€ +- The following Prisma-specific environment variables have been removed + - `PRISMA_CLI_QUERY_ENGINE_TYPE` + - `PRISMA_CLIENT_ENGINE_TYPE` + - `PRISMA_QUERY_ENGINE_BINARY` + - `PRISMA_QUERY_ENGINE_LIBRARY` + - `PRISMA_GENERATE_SKIP_AUTOINSTALL` + - `PRISMA_SKIP_POSTINSTALL_GENERATE` + - `PRISMA_GENERATE_IN_POSTINSTALL` + - `PRISMA_GENERATE_DATAPROXY` + - `PRISMA_GENERATE_NO_ENGINE` + - `PRISMA_CLIENT_NO_RETRY` + - `PRISMA_MIGRATE_SKIP_GENERATE` + - `PRISMA_MIGRATE_SKIP_SEED` + +**Prisma Accelerate changes** + +We’ve changed how to configure Prisma ORM to use Prisma Accelerate. In conjunction with some more Prisma Postgres updates (more on that later), you now use the new `accelerateUrl` option when instantiating the Prisma Client. + +```typescript +import { PrismaClient } from "./generated/prisma/client" +import { withAccelerate } from "@prisma/extension-accelerate" + +const prisma = new PrismaClient({ + accelerateUrl: process.env.DATABASE_URL, +}).$extends(withAccelerate()) +``` + +## New Prisma Studio comes to the CLI + +We launched a new version of Prisma Studio to our Console and VS Code extension a while back, but the Prisma CLI still shipped with the older version. + +Now, with v7.0, we’ve updated the Prisma CLI to include the new Prisma Studio. Not only are you able to inspect your database, but you get rich visualization to help you understand connected relationships in your database. It’s customizable, much smaller, and can inspect remote database by passing a `--url` flag. This new version of Prisma Studio is not tied to the Prisma ORM, and establishes a new foundation for what comes next. + +## Prisma Postgres + +[Prisma Postgres](https://www.prisma.io/postgres)Ā is our managed Postgres service, designed with the same philosophy of great DX that has guided Prisma for close to a decade. It works great with serverless, it’s fast, and with simple pricing and a generous free tier. Here’s what’s new: + +**Connection Pooling Changes with Prisma Accelerate** + +With support for connection pooling being added natively to Prisma Postgres, Prisma Accelerate now serves as a dedicated caching layer. If you were using Accelerate for the connection pooling features, don’t worry! Your existing connection string via Accelerate will continue to work, and you can switch to the new connection pool when you’re ready. + +**Simplified connection flow** + +We added support for pooled/unpooled direct connections in Prisma Postgres a few weeks back. Now, in an effort to make this more clear and accessible, we’ve made the connection user flow in your dashboard simpler. Now, when you go to connect to a database, you’ll get new options to enable connection pooling, or to enable Prisma Accelerate for caching. Below, you’ll get code snippets for getting things configured in your project right away. + +![Screenshot 2025-11-19 at 6.53.34 AM.png](/changelog/image-dbf4a5b41bff50451203b70220e81e27e1c722c1-1672x1872-png-Screenshot-2025-11-19-at-6.53.34-AM.png) + +**Serverless driver** + +For those who want to connect to Prisma Postgres but are deploying to environments like Cloudflare Workers, we have a new version of the serverless client library to support these runtimes. + +- Compatible with Cloudflare Workers, Vercel Edge Functions, Deno Deploy, AWS Lambda, and Bun +- Stream results row-by-row to handle large datasets with constant memory usage +- Pipeline multiple queries over a single connection, reducing latency by up to 3x +- SQL template literals with automatic parameterization and full TypeScript support +- Built-in transactions, batch operations, and extensible type system + +[Check out the serverless driver docs](https://www.prisma.io/docs/postgres/database/serverless-driver) for more details + +## Open roles at Prisma + +Interested in joining Prisma? We’re growing and have several exciting opportunities across the company for developers who are passionate about building with Prisma. Explore our open positions on ourĀ [Careers page](https://www.prisma.io/careers#current)Ā and find the role that’s right for you. + +## Enterprise support + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-12-03.mdx b/apps/site/content/changelog/2025-12-03.mdx new file mode 100644 index 0000000000..e24941c6be --- /dev/null +++ b/apps/site/content/changelog/2025-12-03.mdx @@ -0,0 +1,188 @@ +--- +title: "Prisma ORM v7.1.0: SQL comments and Prisma 7 read replicas" +date: "2025-12-03" +version: "v7.1.0" +slug: "2025-12-03" +headline: "Prisma ORM v7.1.0: SQL comments and Prisma 7 read replicas" +tags: + - "Prisma ORM" +canonical: "/changelog#log2025-12-03" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v7.1.0: SQL comments and Prisma 7 read replicas + +- [\#28735](https://github.com/prisma/prisma/pull/28735): **pnpm monorepo issues with prisma client runtime utils** Resolves issues in pnpm monorepos where users would report TypeScript issues related to `@prisma/client-runtime-utils`. +- [\#28769](https://github.com/prisma/prisma/pull/28769):Ā **implement sql commenter plugins for Prisma Client** This PR implements support for SQL commenter plugins to Prisma Client. The feature will allow users to add metadata to SQL queries as comments, following theĀ [sqlcommenter format](https://google.github.io/sqlcommenter/). Here are two related PRs that were also merged: + - [\#28796](https://github.com/prisma/prisma/pull/28796): **implement query tags for SQL commenter plugin** + - [\#28802](https://github.com/prisma/prisma/pull/28802): **add `traceContext` SQL commenter plugin** +- [\#28737](https://github.com/prisma/prisma/pull/28737): **added error message when constructing client without configs** This commit adds an error message when trying to create a new PrismaClient instance without any arguments. Thanks to @xio84 for this community contribution! +- [\#28820](https://github.com/prisma/prisma/pull/28820): **mark `@opentelemetry/api` as external in instrumentation** Ensures `@opentelemetry/api` is treated as an external dependency rather than bundled. Since it is a peer dependency, this prevents applications from ending up with duplicate copies of the package. +- [\#28694](https://github.com/prisma/prisma/pull/28694): **allow `env()` helper to accept interface-based generics** Updates the `env()` helper’s type definition so it works with interfaces as well as type aliases. This removes the previous constraint requiring an index signature and resolves TS2344 errors when using interface-based env types. Runtime behavior is unchanged. Thanks to @SaubhagyaAnubhav for this community contribution! + +## Read Replicas extension + +- [\#53](https://github.com/prisma/extension-read-replicas/pull/53): **Add support for Prisma 7** Users of the read-replicas extension can now use the extension in Prisma v7. You can update by installing: + +```npm +npm install @prisma/extension-read-replicas@latest +``` + +For folks still on Prisma v6, install version `0.4.1`: + +```npm +npm install @prisma/extension-read-replicas@0.4.1 +``` + +For more information, [visit the repo](https://github.com/prisma/extension-read-replicas) + +## SQL comments + +We're excited to announce **SQL Comments** support in Prisma 7.1.0! This new feature allows you to append metadata to your SQL queries as comments, making it easier to correlate queries with application context for improved observability, debugging, and tracing. + +SQL comments follow the [sqlcommenter format](https://google.github.io/sqlcommenter/) developed by Google, which is widely supported by database monitoring tools. With this feature, your SQL queries can include rich metadata: + +```text +SELECT "id", "name" FROM "User" /*application='my-app',traceparent='00-abc123...-01'*/ +``` + +**Basic usage** + +Pass an array of SQL commenter plugins to the new `comments` option when creating a `PrismaClient` instance: + +```typescript +import { PrismaClient } from './generated/prisma/client'; +import { PrismaPg } from '@prisma/adapter-pg'; +import { queryTags } from '@prisma/sqlcommenter-query-tags'; +import { traceContext } from '@prisma/sqlcommenter-trace-context'; + +const adapter = new PrismaPg({ + connectionString: `${process.env.DATABASE_URL}`, +}); + +const prisma = new PrismaClient({ + adapter, + comments: [queryTags(), traceContext()], +}); +``` + +**Query tags** + +The `@prisma/sqlcommenter-query-tags` package lets you add arbitrary tags to queries within an async context: + +```typescript +import { queryTags, withQueryTags } from '@prisma/sqlcommenter-query-tags'; + +const prisma = new PrismaClient({ + adapter, + comments: [queryTags()], +}); + +// Wrap your queries to add tags +const users = await withQueryTags( + { route: '/api/users', requestId: 'abc-123' }, + () => prisma.user.findMany(), +); +``` + +Resulting SQL: + +```text +SELECT ... FROM "User" /*requestId='abc-123',route='/api/users'*/ +``` + +Use `withMergedQueryTags` to merge tags with outer scopes: + +```typescript +import { + withQueryTags, + withMergedQueryTags, +} from '@prisma/sqlcommenter-query-tags'; + +await withQueryTags({ requestId: 'req-123', source: 'api' }, async () => { + await withMergedQueryTags( + { userId: 'user-456', source: 'handler' }, + async () => { + // Queries here have: requestId='req-123', userId='user-456', source='handler' + await prisma.user.findMany(); + }, + ); +}); +``` + +**Trace context** + +The `@prisma/sqlcommenter-trace-context` package adds W3C Trace Context (`traceparent`) headers for distributed tracing correlation: + +```typescript +import { traceContext } from '@prisma/sqlcommenter-trace-context'; + +const prisma = new PrismaClient({ + adapter, + comments: [traceContext()], +}); +``` + +When tracing is enabled and the span is sampled: + +```text +SELECT * FROM "User" /*traceparent='00-0af7651916cd43dd8448eb211c80319c-b9c7c989f97918e1-01'*/ +``` + +Note: Requires @prisma/instrumentation to be configured. The traceparent is only added when tracing is active and the span is sampled. + +**Custom plugins** + +Create your own plugins to add custom metadata: + +```typescript +import type { SqlCommenterPlugin } from '@prisma/sqlcommenter'; + +const applicationTags: SqlCommenterPlugin = (context) => ({ + application: 'my-service', + environment: process.env.NODE_ENV ?? 'development', + operation: context.query.action, + model: context.query.modelName, +}); + +const prisma = new PrismaClient({ + adapter, + comments: [applicationTags], +}); +``` + +**Framework integration** + +SQL comments work seamlessly with popular frameworks, e.g., **Hono**: + +```typescript +import { createMiddleware } from 'hono/factory'; +import { withQueryTags } from '@prisma/sqlcommenter-query-tags'; + +app.use( + createMiddleware(async (c, next) => { + await withQueryTags( + { + route: c.req.path, + method: c.req.method, + requestId: c.req.header('x-request-id') ?? crypto.randomUUID(), + }, + () => next(), + ); + }), +); +``` + +Additional framework examples for **Express**, **Koa**, **Fastify**, and **NestJS** are available in the documentation. + +For complete documentation, see [SQL Comments](https://www.prisma.io/docs/orm/prisma-client/observability-and-logging/sql-comments). We'd love to hear your feedback on this feature! Please open an issue on [GitHub](https://github.com/prisma/prisma) or join the discussion in our [Discord community](https://pris.ly/discord). + +## Enterprise support + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2025-12-17.mdx b/apps/site/content/changelog/2025-12-17.mdx new file mode 100644 index 0000000000..fb9e280829 --- /dev/null +++ b/apps/site/content/changelog/2025-12-17.mdx @@ -0,0 +1,51 @@ +--- +title: "Prisma ORM v7.2.0: migrate URL flags and Bun-aware prisma init" +date: "2025-12-17" +version: "v7.2.0" +slug: "2025-12-17" +headline: "Prisma ORM v7.2.0: migrate URL flags and Bun-aware prisma init" +tags: + - "Prisma ORM" +canonical: "/changelog#log2025-12-17" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v7.2.0: migrate URL flags and Bun-aware prisma init + +- [\#28830](https://github.com/prisma/prisma/pull/28830): feat: add `sqlcommenter-query-insights` plugin + - Adds a new SQL commenter plugin to support query insights metadata. +- [\#28860](https://github.com/prisma/prisma/pull/28860): feat(migrate): add `-url` param for `db pull`, `db push`, `migrate dev` + - Adds a `-url` flag to key migrate commands to make connection configuration more flexible. +- [\#28895](https://github.com/prisma/prisma/pull/28895): feat(config): allow undefined URLs in e.g. `prisma generate` + - Allows certain workflows (such as `prisma generate`) to proceed even when URLs are undefined. +- [\#28903](https://github.com/prisma/prisma/pull/28903): feat(cli): customize `prisma init` based on the JS runtime (Bun vs others) + - Makes `prisma init` tailor generated setup depending on whether the runtime is Bun or another JavaScript runtime. +- [\#28846](https://github.com/prisma/prisma/pull/28846): fix(client-engine-runtime): make `DataMapperError` a `UserFacingError` + - Ensures `DataMapperError` is surfaced as a user-facing error for clearer, more actionable error reporting. +- [\#28849](https://github.com/prisma/prisma/pull/28849): fix(adapter-\{pg,neon,ppg\}): handle 22P02 error in Postgres + - Improves Postgres adapter error handling for invalid-text-representation errors (`22P02`). +- [\#28913](https://github.com/prisma/prisma/pull/28913): fix: fix byte upserts by removing legacy byte array representation + - Fixes byte upsert behavior by removing a legacy byte-array representation path. +- [\#28535](https://github.com/prisma/prisma/pull/28535): fix(client,internals,migrate,generator-helper): handle multibyte UTF-8 characters split across chunk boundaries in byline + - Prevents issues when multibyte UTF-8 characters are split across chunk boundaries during line processing. +- [\#28911](https://github.com/prisma/prisma/pull/28911): fix(cli): make `prisma version --json` emit JSON only to stdout + - Ensures machine-readable JSON output is emitted cleanly to stdout without extra noise. +- [\#28914](https://github.com/prisma/prisma/pull/28914): refactor(cli): bump `@prisma/dev` and use `startPrismaDevServer` instead of the deprecated `unstable_startServer` + - Migrates CLI dev server startup to the newer `startPrismaDevServer` API and updates `@prisma/dev`. + +## VS Code Extension + +- [\#1950](https://github.com/prisma/language-tools/pull/1950): fix: TML-1670 studio connections + - Resolves issues related to Studio connections, improving reliability for VS Code or language-server integrations. +- [\#1953](https://github.com/prisma/language-tools/pull/1953): chore(vscode): bump @prisma/dev, use its daemon + - Bumps the `@prisma/dev` dependency for the VS Code extension and updates it to use its daemon for better performance and tooling integration. + +## Enterprise support + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/content/changelog/2026-01-21.mdx b/apps/site/content/changelog/2026-01-21.mdx new file mode 100644 index 0000000000..6270354d68 --- /dev/null +++ b/apps/site/content/changelog/2026-01-21.mdx @@ -0,0 +1,61 @@ +--- +title: "Prisma ORM v7.3.0: fast and small query compilers" +date: "2026-01-21" +version: "v7.3.0" +slug: "2026-01-21" +headline: "Prisma ORM v7.3.0: fast and small query compilers" +tags: + - "Prisma ORM" +canonical: "/changelog#log2026-01-21" +share: + active: true + content: "Look at this page: " +source: + exportedAt: "2026-03-31T10:29:19.701Z" +--- + +## Prisma ORM v7.3.0: fast and small query compilers + +- [\#28976](https://github.com/prisma/prisma/pull/28976): Fast and Small Query Compilers +We've been working on various performance-related bugs since the initial ORM 7.0 release. With 7.3.0, we're introducing a new `compilerBuild` option for the client generator block in `schema.prisma` with two options: `fast` and `small`. This allows you to swap the underlying Query Compiler engine based on your selection, one built for speed (with an increase in size), and one built for size (with the trade-off for speed). By default, the `fast` mode is used, but this can be set by the user. We still have more in progress for performance, but this new `compilerBuild` option is our first step toward addressing your concerns! + +```text +generator client { + provider = "prisma-client" + output = "../src/generated/prisma" + compilerBuild = "fast" // "fast" | "small" +} +``` + +- [\#29005](https://github.com/prisma/prisma/pull/29005): Bypass the Query Compiler for Raw Queries +Raw queries (`$executeRaw`, `$queryRaw`) can now skip going through the query compiler and query interpreter infrastructure. They can be sent directly to the driver adapter, removing additional overhead. +- [\#28965](https://github.com/prisma/prisma/pull/28965): Update MSSQL to v12.2.0 +This community PR updates the `@prisma/adapter-mssql` to use MSSQL v12.2.0. Thanks [Jay-Lokhande](https://github.com/Jay-Lokhande)! +- [\#29001](https://github.com/prisma/prisma/pull/29001): Pin better-sqlite3 version to avoid SQLite bug +An underlying bug in SQLite 3.51.0 has affected the `better-sqlite3` adapter. We’ve bumped the version that powers `@prisma/better-sqlite3` and have pinned the version to prevent any unexpected issues. If you are using `@prisma/better-sqlite3` , please upgrade to v7.3.0. +- [\#29002](https://github.com/prisma/prisma/pull/29002): Revert `@map` enums to v6.19.0 behavior +In the initial release of v7.0, we made a change with Mapped Enums where the generated enum would get its value from the value passed to the `@map` function. This was a breaking change from v6 that caused issues for many users. We have reverted this change for the time being, as many different diverging approaches have emerged from the community discussion. +- [prisma-engines\#5745](https://github.com/prisma/prisma-engines/pull/5745): Cast BigInt to text in JSON aggregation +When usingĀ `relationJoins`Ā with BigInt fields in Prisma 7, JavaScript'sĀ `JSON.parse`Ā loses precision for integers larger thanĀ `Number.MAX_SAFE_INTEGER`Ā (2^53 - 1).This happens because PostgreSQL'sĀ `JSONB_BUILD_OBJECT`Ā returns BigInt values as JSON numbers, which JavaScript cannot represent precisely. + +```text +// Original BigInt ID: 312590077454712834 +// After JSON.parse: 312590077454712830 (corrupted!) + +``` + +This PR cast BigInt columns toĀ `::text`Ā insideĀ `JSONB_BUILD_OBJECT`Ā calls, similar to how `MONEY` is already cast toĀ `::numeric`.This ensures BigInt values are returned as JSON strings, preserving full precision when parsed in JavaScript. + +```text +-- Before +JSONB_BUILD_OBJECT('id', "id") + +-- After +JSONB_BUILD_OBJECT('id', "id"::text) +``` + +## Enterprise support + +Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. + +With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join:Ā [https://prisma.io/enterprise](https://prisma.io/enterprise). diff --git a/apps/site/next.config.mjs b/apps/site/next.config.mjs index bd19c99c6a..0a39fad404 100644 --- a/apps/site/next.config.mjs +++ b/apps/site/next.config.mjs @@ -1,3 +1,7 @@ +import { createMDX } from "fumadocs-mdx/next"; + +const withMDX = createMDX(); + const ContentSecurityPolicy = ` default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' @@ -231,4 +235,4 @@ const config = { }, }; -export default config; +export default withMDX(config); diff --git a/apps/site/package.json b/apps/site/package.json index 3e66cd0d4b..4c8fba9dde 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -8,7 +8,8 @@ "dev": "next dev --port 3000", "start": "next start --port 3000", "check": "oxfmt . --write && oxlint . --fix", - "types:check": "next typegen && tsc --noEmit", + "types:check": "fumadocs-mdx && next typegen && tsc --noEmit", + "postinstall": "fumadocs-mdx", "lint:links": "tsx ./scripts/lint.ts" }, "dependencies": { @@ -21,6 +22,7 @@ "cors": "^2.8.6", "html-react-parser": "^5.2.17", "fumadocs-core": "catalog:", + "fumadocs-mdx": "catalog:", "fumadocs-ui": "catalog:", "lucide-react": "catalog:", "next": "catalog:", diff --git a/apps/site/public/changelog/image-000a48b9be0569e18d23dd3c38c25fb2af113b9e-3840x1632-png-Screenshot-2025-10-31-at-3.56.59-PM.png b/apps/site/public/changelog/image-000a48b9be0569e18d23dd3c38c25fb2af113b9e-3840x1632-png-Screenshot-2025-10-31-at-3.56.59-PM.png new file mode 100644 index 0000000000..d2eb8da5f5 Binary files /dev/null and b/apps/site/public/changelog/image-000a48b9be0569e18d23dd3c38c25fb2af113b9e-3840x1632-png-Screenshot-2025-10-31-at-3.56.59-PM.png differ diff --git a/apps/site/public/changelog/image-02452d28050185410c782423320d0f1319ab49e1-2804x952-png-Code-export-6-.png b/apps/site/public/changelog/image-02452d28050185410c782423320d0f1319ab49e1-2804x952-png-Code-export-6-.png new file mode 100644 index 0000000000..c9303577c8 Binary files /dev/null and b/apps/site/public/changelog/image-02452d28050185410c782423320d0f1319ab49e1-2804x952-png-Code-export-6-.png differ diff --git a/apps/site/public/changelog/image-099c6f875c0d426fbbf032b406a94eb0fa1d8288-844x474-png-image.png b/apps/site/public/changelog/image-099c6f875c0d426fbbf032b406a94eb0fa1d8288-844x474-png-image.png new file mode 100644 index 0000000000..7ad850afb9 Binary files /dev/null and b/apps/site/public/changelog/image-099c6f875c0d426fbbf032b406a94eb0fa1d8288-844x474-png-image.png differ diff --git a/apps/site/public/changelog/image-0e65ac228e56ab655cadd7cefc48e651489de118-2876x1672-png-Code-export-4-.png b/apps/site/public/changelog/image-0e65ac228e56ab655cadd7cefc48e651489de118-2876x1672-png-Code-export-4-.png new file mode 100644 index 0000000000..bb260bd539 Binary files /dev/null and b/apps/site/public/changelog/image-0e65ac228e56ab655cadd7cefc48e651489de118-2876x1672-png-Code-export-4-.png differ diff --git a/apps/site/public/changelog/image-1b4d23d5d2d93055fe604b9767ae70064dd6b041-2470x1030-png-image.png b/apps/site/public/changelog/image-1b4d23d5d2d93055fe604b9767ae70064dd6b041-2470x1030-png-image.png new file mode 100644 index 0000000000..0243eb4ccd Binary files /dev/null and b/apps/site/public/changelog/image-1b4d23d5d2d93055fe604b9767ae70064dd6b041-2470x1030-png-image.png differ diff --git a/apps/site/public/changelog/image-1c0bd6e424915af7872c687c800eeebaacf23e5c-1266x711-png-blog-pulse-GA-11.png b/apps/site/public/changelog/image-1c0bd6e424915af7872c687c800eeebaacf23e5c-1266x711-png-blog-pulse-GA-11.png new file mode 100644 index 0000000000..6e13cbe139 Binary files /dev/null and b/apps/site/public/changelog/image-1c0bd6e424915af7872c687c800eeebaacf23e5c-1266x711-png-blog-pulse-GA-11.png differ diff --git a/apps/site/public/changelog/image-1c1347e1e24b43ebe2bc1134b8a6fe4ce1bc20b6-3304x1216-png-image-16-.png b/apps/site/public/changelog/image-1c1347e1e24b43ebe2bc1134b8a6fe4ce1bc20b6-3304x1216-png-image-16-.png new file mode 100644 index 0000000000..32a77d44d6 Binary files /dev/null and b/apps/site/public/changelog/image-1c1347e1e24b43ebe2bc1134b8a6fe4ce1bc20b6-3304x1216-png-image-16-.png differ diff --git a/apps/site/public/changelog/image-1ca84fbcd21cf4ba2965d4581c6b2e4ccbeba496-1688x948-png-slolin.png b/apps/site/public/changelog/image-1ca84fbcd21cf4ba2965d4581c6b2e4ccbeba496-1688x948-png-slolin.png new file mode 100644 index 0000000000..87137fecfc Binary files /dev/null and b/apps/site/public/changelog/image-1ca84fbcd21cf4ba2965d4581c6b2e4ccbeba496-1688x948-png-slolin.png differ diff --git a/apps/site/public/changelog/image-310a6222b5ee7ac29147f87e2859629acfaee43e-2270x1208-png-image.png b/apps/site/public/changelog/image-310a6222b5ee7ac29147f87e2859629acfaee43e-2270x1208-png-image.png new file mode 100644 index 0000000000..6117350899 Binary files /dev/null and b/apps/site/public/changelog/image-310a6222b5ee7ac29147f87e2859629acfaee43e-2270x1208-png-image.png differ diff --git a/apps/site/public/changelog/image-3591d625e8bce0c71d29d8cd0f026e5f8daf3f79-844x474-webp-TypedSQL-announcement-844x474.webp b/apps/site/public/changelog/image-3591d625e8bce0c71d29d8cd0f026e5f8daf3f79-844x474-webp-TypedSQL-announcement-844x474.webp new file mode 100644 index 0000000000..fd3943a1eb Binary files /dev/null and b/apps/site/public/changelog/image-3591d625e8bce0c71d29d8cd0f026e5f8daf3f79-844x474-webp-TypedSQL-announcement-844x474.webp differ diff --git a/apps/site/public/changelog/image-371165fb1d2fee0df920c530104ed0fc34030dbf-3680x2382-png-image.png b/apps/site/public/changelog/image-371165fb1d2fee0df920c530104ed0fc34030dbf-3680x2382-png-image.png new file mode 100644 index 0000000000..8751c8d9c8 Binary files /dev/null and b/apps/site/public/changelog/image-371165fb1d2fee0df920c530104ed0fc34030dbf-3680x2382-png-image.png differ diff --git a/apps/site/public/changelog/image-4447786d03b362ef21329948b4c9d48d90ddbe9f-1200x630-png-blogpost-splitschema-4.png b/apps/site/public/changelog/image-4447786d03b362ef21329948b4c9d48d90ddbe9f-1200x630-png-blogpost-splitschema-4.png new file mode 100644 index 0000000000..fe4b0f1644 Binary files /dev/null and b/apps/site/public/changelog/image-4447786d03b362ef21329948b4c9d48d90ddbe9f-1200x630-png-blogpost-splitschema-4.png differ diff --git a/apps/site/public/changelog/image-4844dfbf758490d60359d55f99e0df65cdbd1dfa-2482x470-png-image.png b/apps/site/public/changelog/image-4844dfbf758490d60359d55f99e0df65cdbd1dfa-2482x470-png-image.png new file mode 100644 index 0000000000..e09e63f102 Binary files /dev/null and b/apps/site/public/changelog/image-4844dfbf758490d60359d55f99e0df65cdbd1dfa-2482x470-png-image.png differ diff --git a/apps/site/public/changelog/image-5bc2e336f20f34d93aa36c8afddda5c82f40343d-2976x1592-png-Code-export-3-.png b/apps/site/public/changelog/image-5bc2e336f20f34d93aa36c8afddda5c82f40343d-2976x1592-png-Code-export-3-.png new file mode 100644 index 0000000000..e1f3936952 Binary files /dev/null and b/apps/site/public/changelog/image-5bc2e336f20f34d93aa36c8afddda5c82f40343d-2976x1592-png-Code-export-3-.png differ diff --git a/apps/site/public/changelog/image-5fc540292aa61c9d17742aa50eee4a6bf9aef81d-1040x522-png-Code-export-1-.png b/apps/site/public/changelog/image-5fc540292aa61c9d17742aa50eee4a6bf9aef81d-1040x522-png-Code-export-1-.png new file mode 100644 index 0000000000..e0f545f2d7 Binary files /dev/null and b/apps/site/public/changelog/image-5fc540292aa61c9d17742aa50eee4a6bf9aef81d-1040x522-png-Code-export-1-.png differ diff --git a/apps/site/public/changelog/image-6643cd3fa55e6b2554f2256149a7ea9e62df3258-844x474-svg-blogpost-accelerate_autoscale-7.svg b/apps/site/public/changelog/image-6643cd3fa55e6b2554f2256149a7ea9e62df3258-844x474-svg-blogpost-accelerate_autoscale-7.svg new file mode 100644 index 0000000000..fbc8eaad55 --- /dev/null +++ b/apps/site/public/changelog/image-6643cd3fa55e6b2554f2256149a7ea9e62df3258-844x474-svg-blogpost-accelerate_autoscale-7.svg @@ -0,0 +1,673 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/site/public/changelog/image-66fc05379af15d65fd3dd6d792c9a575db648895-844x474-png-blog-d1Launch-1.png b/apps/site/public/changelog/image-66fc05379af15d65fd3dd6d792c9a575db648895-844x474-png-blog-d1Launch-1.png new file mode 100644 index 0000000000..db32516353 Binary files /dev/null and b/apps/site/public/changelog/image-66fc05379af15d65fd3dd6d792c9a575db648895-844x474-png-blog-d1Launch-1.png differ diff --git a/apps/site/public/changelog/image-6796d74a842eae9429254e7ed11b483985ba4e50-1266x711-png-blog-prismapostgres-3.png b/apps/site/public/changelog/image-6796d74a842eae9429254e7ed11b483985ba4e50-1266x711-png-blog-prismapostgres-3.png new file mode 100644 index 0000000000..11b306b1a3 Binary files /dev/null and b/apps/site/public/changelog/image-6796d74a842eae9429254e7ed11b483985ba4e50-1266x711-png-blog-prismapostgres-3.png differ diff --git a/apps/site/public/changelog/image-6cffc085cf7d479b2f7e0b5b2655f9d3cf433d5b-3248x2050-png-local-ppg-annotated.png b/apps/site/public/changelog/image-6cffc085cf7d479b2f7e0b5b2655f9d3cf433d5b-3248x2050-png-local-ppg-annotated.png new file mode 100644 index 0000000000..151719e0b9 Binary files /dev/null and b/apps/site/public/changelog/image-6cffc085cf7d479b2f7e0b5b2655f9d3cf433d5b-3248x2050-png-local-ppg-annotated.png differ diff --git a/apps/site/public/changelog/image-6d76b801c5663654db08e0045d8a034526434668-1800x948-png-meta-delivery-guarantees.png b/apps/site/public/changelog/image-6d76b801c5663654db08e0045d8a034526434668-1800x948-png-meta-delivery-guarantees.png new file mode 100644 index 0000000000..81e91d90cb Binary files /dev/null and b/apps/site/public/changelog/image-6d76b801c5663654db08e0045d8a034526434668-1800x948-png-meta-delivery-guarantees.png differ diff --git a/apps/site/public/changelog/image-6e96adf6edf9a2019424eba3ab11054927abc353-1668x1080-gif-reset-db.gif b/apps/site/public/changelog/image-6e96adf6edf9a2019424eba3ab11054927abc353-1668x1080-gif-reset-db.gif new file mode 100644 index 0000000000..0a6a0585fc Binary files /dev/null and b/apps/site/public/changelog/image-6e96adf6edf9a2019424eba3ab11054927abc353-1668x1080-gif-reset-db.gif differ diff --git a/apps/site/public/changelog/image-6f5fffc8528e9d079196ecbeca717908e0faba73-1212x720-gif-Warp.gif b/apps/site/public/changelog/image-6f5fffc8528e9d079196ecbeca717908e0faba73-1212x720-gif-Warp.gif new file mode 100644 index 0000000000..717b5e7449 Binary files /dev/null and b/apps/site/public/changelog/image-6f5fffc8528e9d079196ecbeca717908e0faba73-1212x720-gif-Warp.gif differ diff --git a/apps/site/public/changelog/image-87ec0230728297f7b8e5535831beaa66f17b734a-2200x1236-jpg-GQv4JpCX0AEymn-.jpg b/apps/site/public/changelog/image-87ec0230728297f7b8e5535831beaa66f17b734a-2200x1236-jpg-GQv4JpCX0AEymn-.jpg new file mode 100644 index 0000000000..33aa8728de Binary files /dev/null and b/apps/site/public/changelog/image-87ec0230728297f7b8e5535831beaa66f17b734a-2200x1236-jpg-GQv4JpCX0AEymn-.jpg differ diff --git a/apps/site/public/changelog/image-9a5f27696242c051a689abed3d4b7099a8145301-1200x674-png-hero-firewall-teal-1.5x.png b/apps/site/public/changelog/image-9a5f27696242c051a689abed3d4b7099a8145301-1200x674-png-hero-firewall-teal-1.5x.png new file mode 100644 index 0000000000..37a70269b9 Binary files /dev/null and b/apps/site/public/changelog/image-9a5f27696242c051a689abed3d4b7099a8145301-1200x674-png-hero-firewall-teal-1.5x.png differ diff --git a/apps/site/public/changelog/image-9a99ba8aa9c6b70479608f1693544eb1159acf22-1404x1080-gif-create-db.gif b/apps/site/public/changelog/image-9a99ba8aa9c6b70479608f1693544eb1159acf22-1404x1080-gif-create-db.gif new file mode 100644 index 0000000000..d442d40648 Binary files /dev/null and b/apps/site/public/changelog/image-9a99ba8aa9c6b70479608f1693544eb1159acf22-1404x1080-gif-create-db.gif differ diff --git a/apps/site/public/changelog/image-a1d1eef46c8bd17faf4c3174f087c2a479f98649-1328x570-png-nested-create.png b/apps/site/public/changelog/image-a1d1eef46c8bd17faf4c3174f087c2a479f98649-1328x570-png-nested-create.png new file mode 100644 index 0000000000..7a44837731 Binary files /dev/null and b/apps/site/public/changelog/image-a1d1eef46c8bd17faf4c3174f087c2a479f98649-1328x570-png-nested-create.png differ diff --git a/apps/site/public/changelog/image-a2d1af619fb547bcc995ef12e208107bffafc97f-844x474-svg-blogpost-optimize-8.svg b/apps/site/public/changelog/image-a2d1af619fb547bcc995ef12e208107bffafc97f-844x474-svg-blogpost-optimize-8.svg new file mode 100644 index 0000000000..55d9c2dbff --- /dev/null +++ b/apps/site/public/changelog/image-a2d1af619fb547bcc995ef12e208107bffafc97f-844x474-svg-blogpost-optimize-8.svg @@ -0,0 +1,1864 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/site/public/changelog/image-a3438ae7d08cb86d8ac9db19dc2ad2ac4edf2c4c-3070x1866-png-new_ui.png b/apps/site/public/changelog/image-a3438ae7d08cb86d8ac9db19dc2ad2ac4edf2c4c-3070x1866-png-new_ui.png new file mode 100644 index 0000000000..035cfbc7f2 Binary files /dev/null and b/apps/site/public/changelog/image-a3438ae7d08cb86d8ac9db19dc2ad2ac4edf2c4c-3070x1866-png-new_ui.png differ diff --git a/apps/site/public/changelog/image-a6312279b8aab81d7fcf21ad3308dd3a18710c7f-2724x1566-png-perf-graphs.png b/apps/site/public/changelog/image-a6312279b8aab81d7fcf21ad3308dd3a18710c7f-2724x1566-png-perf-graphs.png new file mode 100644 index 0000000000..1b8212807c Binary files /dev/null and b/apps/site/public/changelog/image-a6312279b8aab81d7fcf21ad3308dd3a18710c7f-2724x1566-png-perf-graphs.png differ diff --git a/apps/site/public/changelog/image-a6a82eb9c6a5a6ab82a0d8073bf07032aa5d2fc9-2028x2082-png-pricing-calculator.png b/apps/site/public/changelog/image-a6a82eb9c6a5a6ab82a0d8073bf07032aa5d2fc9-2028x2082-png-pricing-calculator.png new file mode 100644 index 0000000000..7674e1345f Binary files /dev/null and b/apps/site/public/changelog/image-a6a82eb9c6a5a6ab82a0d8073bf07032aa5d2fc9-2028x2082-png-pricing-calculator.png differ diff --git a/apps/site/public/changelog/image-aa243ddc8303046f9a564cf2dd74d7dacb76f007-2048x977-png-image.png b/apps/site/public/changelog/image-aa243ddc8303046f9a564cf2dd74d7dacb76f007-2048x977-png-image.png new file mode 100644 index 0000000000..4ded4498e8 Binary files /dev/null and b/apps/site/public/changelog/image-aa243ddc8303046f9a564cf2dd74d7dacb76f007-2048x977-png-image.png differ diff --git a/apps/site/public/changelog/image-ac099c83eef7bbbc99e6c61cafcac07bb7bfab64-2470x1030-png-direct-tcp.png b/apps/site/public/changelog/image-ac099c83eef7bbbc99e6c61cafcac07bb7bfab64-2470x1030-png-direct-tcp.png new file mode 100644 index 0000000000..52e7b854f7 Binary files /dev/null and b/apps/site/public/changelog/image-ac099c83eef7bbbc99e6c61cafcac07bb7bfab64-2470x1030-png-direct-tcp.png differ diff --git a/apps/site/public/changelog/image-ac94c9e2d1e3410fcbc4416fdea233ab8b817734-3248x2050-png-push-to-cloud-annotated.png b/apps/site/public/changelog/image-ac94c9e2d1e3410fcbc4416fdea233ab8b817734-3248x2050-png-push-to-cloud-annotated.png new file mode 100644 index 0000000000..c5d937b1c0 Binary files /dev/null and b/apps/site/public/changelog/image-ac94c9e2d1e3410fcbc4416fdea233ab8b817734-3248x2050-png-push-to-cloud-annotated.png differ diff --git a/apps/site/public/changelog/image-b1b89114767325fb79cf520f24b52a12ddc75422-3680x2382-png-image.png b/apps/site/public/changelog/image-b1b89114767325fb79cf520f24b52a12ddc75422-3680x2382-png-image.png new file mode 100644 index 0000000000..1488e1c4a4 Binary files /dev/null and b/apps/site/public/changelog/image-b1b89114767325fb79cf520f24b52a12ddc75422-3680x2382-png-image.png differ diff --git a/apps/site/public/changelog/image-b70ab6e5ad8096fba76c389f13b991a606de7f31-1200x630-png-og-changelog.png b/apps/site/public/changelog/image-b70ab6e5ad8096fba76c389f13b991a606de7f31-1200x630-png-og-changelog.png new file mode 100644 index 0000000000..d549da90d3 Binary files /dev/null and b/apps/site/public/changelog/image-b70ab6e5ad8096fba76c389f13b991a606de7f31-1200x630-png-og-changelog.png differ diff --git a/apps/site/public/changelog/image-bbb1e7f6b0f7bef3d318fac96652548cad0ef0b5-844x474-svg-blog-prisma-react-native.svg b/apps/site/public/changelog/image-bbb1e7f6b0f7bef3d318fac96652548cad0ef0b5-844x474-svg-blog-prisma-react-native.svg new file mode 100644 index 0000000000..57c644ace1 --- /dev/null +++ b/apps/site/public/changelog/image-bbb1e7f6b0f7bef3d318fac96652548cad0ef0b5-844x474-svg-blog-prisma-react-native.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/site/public/changelog/image-bd1a52263c6e36773fe0c4b003a81298d7f175f4-800x450-gif-create-db.gif b/apps/site/public/changelog/image-bd1a52263c6e36773fe0c4b003a81298d7f175f4-800x450-gif-create-db.gif new file mode 100644 index 0000000000..f667616326 Binary files /dev/null and b/apps/site/public/changelog/image-bd1a52263c6e36773fe0c4b003a81298d7f175f4-800x450-gif-create-db.gif differ diff --git a/apps/site/public/changelog/image-cc9a77a2a38930dd4e9697a2a6342746d8d2932f-600x338-gif-Tweet-video.gif b/apps/site/public/changelog/image-cc9a77a2a38930dd4e9697a2a6342746d8d2932f-600x338-gif-Tweet-video.gif new file mode 100644 index 0000000000..49cb409028 Binary files /dev/null and b/apps/site/public/changelog/image-cc9a77a2a38930dd4e9697a2a6342746d8d2932f-600x338-gif-Tweet-video.gif differ diff --git a/apps/site/public/changelog/image-d08557fd614a1bcf64b7c3f55bd81d799443f426-2040x1618-png-image-2-.png b/apps/site/public/changelog/image-d08557fd614a1bcf64b7c3f55bd81d799443f426-2040x1618-png-image-2-.png new file mode 100644 index 0000000000..a5ba4e20db Binary files /dev/null and b/apps/site/public/changelog/image-d08557fd614a1bcf64b7c3f55bd81d799443f426-2040x1618-png-image-2-.png differ diff --git a/apps/site/public/changelog/image-d2c35b8243dd6f86ff9a353d5bb64ad79510920f-2836x981-png-Studio-component-LIGHT-4x.png b/apps/site/public/changelog/image-d2c35b8243dd6f86ff9a353d5bb64ad79510920f-2836x981-png-Studio-component-LIGHT-4x.png new file mode 100644 index 0000000000..389a8139bc Binary files /dev/null and b/apps/site/public/changelog/image-d2c35b8243dd6f86ff9a353d5bb64ad79510920f-2836x981-png-Studio-component-LIGHT-4x.png differ diff --git a/apps/site/public/changelog/image-d524983761b9b4504198b546eaea9162ea0b4b97-1040x540-png-omit-code-example.png b/apps/site/public/changelog/image-d524983761b9b4504198b546eaea9162ea0b4b97-1040x540-png-omit-code-example.png new file mode 100644 index 0000000000..f8c37b37df Binary files /dev/null and b/apps/site/public/changelog/image-d524983761b9b4504198b546eaea9162ea0b4b97-1040x540-png-omit-code-example.png differ diff --git a/apps/site/public/changelog/image-d5c2d5f06095314aeceda56c7bd867e5859e468f-844x474-svg-blog-orm-edge-preview.svg b/apps/site/public/changelog/image-d5c2d5f06095314aeceda56c7bd867e5859e468f-844x474-svg-blog-orm-edge-preview.svg new file mode 100644 index 0000000000..a166728867 --- /dev/null +++ b/apps/site/public/changelog/image-d5c2d5f06095314aeceda56c7bd867e5859e468f-844x474-svg-blog-orm-edge-preview.svg @@ -0,0 +1,705 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/site/public/changelog/image-d662ff0fc23bcf0134f8ffea26db749bd670c6d1-844x474-png-changelog-optimize.png b/apps/site/public/changelog/image-d662ff0fc23bcf0134f8ffea26db749bd670c6d1-844x474-png-changelog-optimize.png new file mode 100644 index 0000000000..0ec8f678e1 Binary files /dev/null and b/apps/site/public/changelog/image-d662ff0fc23bcf0134f8ffea26db749bd670c6d1-844x474-png-changelog-optimize.png differ diff --git a/apps/site/public/changelog/image-dbf4a5b41bff50451203b70220e81e27e1c722c1-1672x1872-png-Screenshot-2025-11-19-at-6.53.34-AM.png b/apps/site/public/changelog/image-dbf4a5b41bff50451203b70220e81e27e1c722c1-1672x1872-png-Screenshot-2025-11-19-at-6.53.34-AM.png new file mode 100644 index 0000000000..b4193951c8 Binary files /dev/null and b/apps/site/public/changelog/image-dbf4a5b41bff50451203b70220e81e27e1c722c1-1672x1872-png-Screenshot-2025-11-19-at-6.53.34-AM.png differ diff --git a/apps/site/public/changelog/image-f7a4f862f7f12d96c98eafef1b6bf0f2d0cac943-3740x1964-png-updated-1-.png b/apps/site/public/changelog/image-f7a4f862f7f12d96c98eafef1b6bf0f2d0cac943-3740x1964-png-updated-1-.png new file mode 100644 index 0000000000..d2b17a7b63 Binary files /dev/null and b/apps/site/public/changelog/image-f7a4f862f7f12d96c98eafef1b6bf0f2d0cac943-3740x1964-png-updated-1-.png differ diff --git a/apps/site/public/changelog/image-f94c7ac0283481bbc8177d30bb3bc92464f1ca33-844x474-png-image.png b/apps/site/public/changelog/image-f94c7ac0283481bbc8177d30bb3bc92464f1ca33-844x474-png-image.png new file mode 100644 index 0000000000..00669e176e Binary files /dev/null and b/apps/site/public/changelog/image-f94c7ac0283481bbc8177d30bb3bc92464f1ca33-844x474-png-image.png differ diff --git a/apps/site/public/changelog/image-fbd0fac24c691f6ebca2c4a85e19fc95196ae070-2080x848-png-image.png b/apps/site/public/changelog/image-fbd0fac24c691f6ebca2c4a85e19fc95196ae070-2080x848-png-image.png new file mode 100644 index 0000000000..73b54403b1 Binary files /dev/null and b/apps/site/public/changelog/image-fbd0fac24c691f6ebca2c4a85e19fc95196ae070-2080x848-png-image.png differ diff --git a/apps/site/public/og/og-changelog.png b/apps/site/public/og/og-changelog.png new file mode 100644 index 0000000000..d549da90d3 Binary files /dev/null and b/apps/site/public/og/og-changelog.png differ diff --git a/apps/site/source.config.ts b/apps/site/source.config.ts new file mode 100644 index 0000000000..ab7cb65b0d --- /dev/null +++ b/apps/site/source.config.ts @@ -0,0 +1,43 @@ +import remarkDirective from "remark-directive"; +import { + remarkDirectiveAdmonition, + remarkImage, + remarkMdxFiles, +} from "fumadocs-core/mdx-plugins"; +import { + defineCollections, + defineConfig, + frontmatterSchema, +} from "fumadocs-mdx/config"; +import lastModified from "fumadocs-mdx/plugins/last-modified"; +import { z } from "zod"; + +export const releaseNotes = defineCollections({ + type: "doc", + dir: "content/changelog", + schema: frontmatterSchema.extend({ + date: z.coerce.date(), + version: z.string(), + summary: z.string().optional(), + metaTitle: z.string().optional(), + metaDescription: z.string().optional(), + ogImage: z.string().optional(), + tags: z.array(z.string()).optional(), + }), + postprocess: { + includeProcessedMarkdown: true, + }, +}); + +export default defineConfig({ + plugins: [lastModified()], + mdxOptions: { + remarkPlugins: [ + remarkDirective, + remarkDirectiveAdmonition, + [remarkImage, { useImport: false }], + remarkMdxFiles, + ], + remarkCodeTabOptions: { parseMdx: true }, + }, +}); diff --git a/apps/site/src/app/changelog/[...slug]/page.tsx b/apps/site/src/app/changelog/[...slug]/page.tsx new file mode 100644 index 0000000000..241b306426 --- /dev/null +++ b/apps/site/src/app/changelog/[...slug]/page.tsx @@ -0,0 +1,146 @@ +import Link from "next/link"; +import type { Metadata } from "next"; +import { notFound } from "next/navigation"; +import { createRelativeLink } from "fumadocs-ui/mdx"; +import { Badge, InlineTOC, Separator } from "@prisma/eclipse"; +import { formatDate, formatTag } from "@/lib/format"; +import { createPageMetadata } from "@/lib/page-metadata"; +import { changelogSource } from "@/lib/changelog-source"; +import { getMDXComponents } from "@/mdx-components"; + +interface PageParams { + slug: string[]; +} + +interface TOCItem { + title: string; + url: string; + depth: number; + items?: TOCItem[]; +} + +export default async function ReleaseNotesPage({ + params, +}: { + params: Promise; +}) { + const { slug } = await params; + const page = changelogSource.getPage(slug); + + if (!page) notFound(); + + const MDX = page.data.body; + const description = page.data.summary ?? page.data.description; + const tags = page.data.tags ?? []; + const toc = (page.data.toc as TOCItem[] | undefined) ?? []; + + return ( +
+
+
+ {/* Title + meta */} +
+ + ← Back to Changelog + +

+ {page.data.title} +

+
+ + {page.data.date ? ( + <> + + + {formatDate(new Date(page.data.date).toISOString())} + + + ) : null} +
+ {tags.length > 0 ? ( +
+ {tags.map((tag) => ( + + ))} +
+ ) : null} +
+ + {/* Body */} +
+
+ {description ? ( +

{description}

+ ) : null} + + +
+
+ + + {/* Share Container */} + {/* */} + + {/* Newsletter CTA */} + {/*
+ +
*/} +
+ {toc.length > 0 ? ( +
+
+ + On this page + + +
+
+ ) : null} +
+
+ ); +} + +export async function generateMetadata({ + params, +}: { + params: Promise; +}): Promise { + const { slug } = await params; + const page = changelogSource.getPage(slug); + + if (!page) notFound(); + + return createPageMetadata({ + title: page.data.metaTitle ?? `${page.data.title} | Prisma`, + description: + page.data.metaDescription ?? + page.data.summary ?? + page.data.description ?? + "Read the latest Prisma release notes.", + path: page.url, + ogImage: page.data.ogImage ?? "/og/og-changelog.png", + }); +} + +export function generateStaticParams(): PageParams[] { + return changelogSource.getPages().map((page) => ({ + slug: page.slugs, + })); +} diff --git a/apps/site/src/app/changelog/layout.tsx b/apps/site/src/app/changelog/layout.tsx new file mode 100644 index 0000000000..5ca4cc4286 --- /dev/null +++ b/apps/site/src/app/changelog/layout.tsx @@ -0,0 +1,9 @@ +import type { ReactNode } from "react"; + +export default function ChangelogLayout({ + children, +}: { + children: ReactNode; +}) { + return children; +} diff --git a/apps/site/src/app/changelog/page.tsx b/apps/site/src/app/changelog/page.tsx new file mode 100644 index 0000000000..8c41063a36 --- /dev/null +++ b/apps/site/src/app/changelog/page.tsx @@ -0,0 +1,93 @@ +import Link from "next/link"; +import { Badge } from "@prisma/eclipse"; +import { + getReleaseNotePreview, + getSortedReleaseNotes, +} from "@/lib/changelog-source"; +import { createPageMetadata } from "@/lib/page-metadata"; +import { formatDate, formatTag } from "@/lib/format"; + +export const metadata = createPageMetadata({ + title: "Release Notes | Prisma", + description: + "Track Prisma release notes, product improvements, and rollout details in one markdown-driven changelog.", + path: "/changelog", + ogImage: "/og/og-changelog.png", +}); + +export default async function ChangelogPage() { + const entries = getSortedReleaseNotes(); + const entriesWithPreview = await Promise.all( + entries.map(async (entry) => ({ + entry, + summary: + entry.data.summary ?? + entry.data.description ?? + (entry.slugs[0] ? await getReleaseNotePreview(entry.slugs[0]) : null), + })), + ); + + return ( +
+
+

+ + Changelog +

+

+ The Latest News from Prisma +

+

+ Here you’ll find all improvements and updates we’ve made to our + products. +

+
+ +
+
+ {entriesWithPreview.map(({ entry, summary }) => { + const tags = entry.data.tags ?? []; + + return ( + +
+
+
+ + {tags.length > 0 ? ( + + ) : null} + + {formatDate(new Date(entry.data.date).toISOString())} + +
+

+ {entry.data.title} +

+ {summary ? ( +

+ {summary} +

+ ) : null} +
+
+ + ); + })} +
+
+
+ ); +} diff --git a/apps/site/src/app/global.css b/apps/site/src/app/global.css index 08e044330a..3c5c9bb19e 100644 --- a/apps/site/src/app/global.css +++ b/apps/site/src/app/global.css @@ -1,6 +1,14 @@ @import "tailwindcss"; + + +@import "fumadocs-ui/css/shadcn.css"; +@import "fumadocs-ui/css/preset.css"; + + + @import "@prisma/eclipse/styles/globals.css"; @import "@prisma-docs/ui/styles"; + @source inline("paused"); @source inline("running"); @source inline("md:hover:paused"); @@ -17,6 +25,17 @@ --color-fd-primary: var(--color-stroke-ppg); } +.landing-h1 { + color: var(--color-foreground-neutral); + font-variant-numeric: lining-nums tabular-nums slashed-zero; + font-variation-settings: "wdth" 125; + font-family: var(--font-sans-display); + font-size: clamp(32px, 5vw + 1rem, 60px); + font-style: normal; + font-weight: 900; + line-height: 120%; +} + /* Link button styles - must come after imports to override */ .link-btn { transition: color 0.3s ease; diff --git a/apps/site/src/lib/changelog-source.tsx b/apps/site/src/lib/changelog-source.tsx new file mode 100644 index 0000000000..8574c98aa4 --- /dev/null +++ b/apps/site/src/lib/changelog-source.tsx @@ -0,0 +1,114 @@ +import { readFile } from "node:fs/promises"; +import path from "node:path"; +import { releaseNotes } from "../../.source/server"; +import { loader } from "fumadocs-core/source"; +import { toFumadocsSource } from "fumadocs-mdx/runtime/server"; + +export const changelogSource = loader({ + baseUrl: "/changelog", + source: toFumadocsSource(releaseNotes, []), +}); + +export function getSortedReleaseNotes() { + return [...changelogSource.getPages()].sort((left, right) => { + const leftDate = new Date(String(left.data.date)).getTime(); + const rightDate = new Date(String(right.data.date)).getTime(); + + return rightDate - leftDate; + }); +} + +function stripMarkdown(value: string) { + return value + .replace(/!\[[^\]]*\]\([^)]*\)/g, "") + .replace(/\[([^\]]+)\]\([^)]*\)/g, "$1") + .replace(/`([^`]+)`/g, "$1") + .replace(/\*\*([^*]+)\*\*/g, "$1") + .replace(/\*([^*]+)\*/g, "$1") + .replace(/\\([#:[\]{}()\-])/g, "$1") + .replace(/\s+/g, " ") + .trim(); +} + +function truncatePreview(value: string, maxLength = 180) { + if (value.length <= maxLength) return value; + + return `${value.slice(0, maxLength).trimEnd()}...`; +} + +export async function getReleaseNotePreview(slug: string) { + const filePath = path.join( + process.cwd(), + "content", + "changelog", + `${slug}.mdx`, + ); + let raw: string; + + try { + raw = await readFile(filePath, "utf8"); + } catch (error) { + if ( + error && + typeof error === "object" && + "code" in error && + error.code === "ENOENT" + ) { + return null; + } + + throw error; + } + const body = raw.replace(/^---[\s\S]*?\n---\n?/, ""); + + const lines = body.split("\n"); + let inCodeBlock = false; + const paragraphs: string[] = []; + let currentParagraph: string[] = []; + + for (const line of lines) { + const trimmed = line.trim(); + + if (trimmed.startsWith("```")) { + inCodeBlock = !inCodeBlock; + continue; + } + + if (inCodeBlock) continue; + + if (!trimmed) { + if (currentParagraph.length > 0) { + paragraphs.push(currentParagraph.join(" ")); + currentParagraph = []; + } + continue; + } + + if ( + trimmed.startsWith("#") || + trimmed.startsWith("![") || + trimmed.startsWith("- ") || + trimmed.startsWith("* ") || + trimmed.startsWith(">") || + /^\d+\.\s/.test(trimmed) + ) { + if (currentParagraph.length > 0) { + paragraphs.push(currentParagraph.join(" ")); + currentParagraph = []; + } + continue; + } + + currentParagraph.push(trimmed); + } + + if (currentParagraph.length > 0) { + paragraphs.push(currentParagraph.join(" ")); + } + + const preview = paragraphs + .map(stripMarkdown) + .find((paragraph) => paragraph.length > 0); + + return preview ? truncatePreview(preview) : null; +} diff --git a/apps/site/src/lib/sitemap.ts b/apps/site/src/lib/sitemap.ts index 0592d1131f..8b9848c17a 100644 --- a/apps/site/src/lib/sitemap.ts +++ b/apps/site/src/lib/sitemap.ts @@ -1,6 +1,7 @@ import type { Dirent } from "node:fs"; import { readdir } from "node:fs/promises"; import path from "node:path"; +import { changelogSource } from "@/lib/changelog-source"; import { getBaseUrl } from "@/lib/url"; type SitemapEntry = { @@ -120,9 +121,14 @@ async function collectPageRoutes(directory: string, segments: string[] = []): Pr /** Generate sitemap entries for all public pages in the site app. */ export async function getSiteSitemapEntries(baseUrl = getBaseUrl()): Promise { - const pathnames = await collectPageRoutes(APP_DIRECTORY); + const [pathnames, changelogEntries] = await Promise.all([ + collectPageRoutes(APP_DIRECTORY), + changelogSource.getPages().map((page) => page.url), + ]); - return pathnames + const allPathnames = [...new Set([...pathnames, ...changelogEntries])]; + + return allPathnames .sort((left, right) => left.localeCompare(right)) .map((pathname) => ({ url: new URL(pathname, baseUrl).toString(), diff --git a/apps/site/src/lib/url.ts b/apps/site/src/lib/url.ts index 61673d9a45..9aee4c3280 100644 --- a/apps/site/src/lib/url.ts +++ b/apps/site/src/lib/url.ts @@ -26,7 +26,7 @@ export function getBaseUrl(): string { return ( (process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : null) ?? - "http://localhost:3002" + "http://localhost:3000" ); } diff --git a/apps/site/src/mdx-components.tsx b/apps/site/src/mdx-components.tsx new file mode 100644 index 0000000000..5129f32468 --- /dev/null +++ b/apps/site/src/mdx-components.tsx @@ -0,0 +1,60 @@ +import Link from "next/link"; +import Image from "next/image"; +import defaultMdxComponents from "fumadocs-ui/mdx"; +import { ImageZoom } from "fumadocs-ui/components/image-zoom"; +import type { MDXComponents } from "mdx/types"; +import type { ComponentProps } from "react"; +import * as icons from "lucide-react"; +import { + Accordion, + Accordions, + Button, + CodeBlock, + CodeBlockTab, + CodeBlockTabs, + CodeBlockTabsList, + CodeBlockTabsTrigger, + Pre, + Step, + Steps, + Tab, + Tabs, + TabsContent, + TabsList, + TabsTrigger, +} from "@prisma/eclipse"; + +export function getMDXComponents(components?: MDXComponents): MDXComponents { + const mdxComponents = { + ...(icons as unknown as MDXComponents), + ...defaultMdxComponents, + Accordion, + Accordions, + Button, + CodeBlockTab, + CodeBlockTabs, + CodeBlockTabsList, + CodeBlockTabsTrigger, + Image, + Link, + Step, + Steps, + Tab, + Tabs, + TabsContent, + TabsList, + TabsTrigger, + img: ({ src, ...props }: ComponentProps<"img">) => + typeof src === "string" ? : null, + }; + + return { + ...mdxComponents, + pre: ({ ref: _ref, ...props }) => ( + +
{props.children}
+
+ ), + ...components, + }; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 455c9e04e1..62a4c31e3b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -615,6 +615,9 @@ importers: fumadocs-core: specifier: 'catalog:' version: 16.6.3(@mdx-js/mdx@3.1.1)(@mixedbread/sdk@0.46.0)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.575.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) + fumadocs-mdx: + specifier: 'catalog:' + version: 14.2.9(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.6.3(@mdx-js/mdx@3.1.1)(@mixedbread/sdk@0.46.0)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.575.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(mdast-util-directive@3.1.0)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) fumadocs-ui: specifier: 'catalog:' version: '@fumadocs/base-ui@16.6.3(@types/react@19.2.14)(fumadocs-core@16.6.3(@mdx-js/mdx@3.1.1)(@mixedbread/sdk@0.46.0)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.575.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1)'