# Prisma Website ## Web - [Page not found | Prisma](/404): Prisma is the easiest way to access a database from a Next.js application in Node.js & TypeScript. - [Error | Prisma](/500): Prisma is the easiest way to access a database from a Next.js application in Node.js & TypeScript. - [About | Prisma](/about): At Prisma, our mission is to provide the best experience for teams to work and interact with databases. Learn more about Prisma. - [Prisma Accelerate | Make your database queries faster](/accelerate): Accelerate is a managed connection pooler with global caching that helps you speed up your queries with just a few lines of code. - [Apollo & Prisma & Database | Next-Generation ORM for SQL Databases](/apollo): Prisma is a next-generation ORM. It's the easiest way to build a GraphQL API with Apollo Server and MySQL, PostgreSQL & SQL Server databases. - [Prisma Blog | Articles & Updates | Prisma, ORMs, Databases](/blog): Stay up to date with the latest from Prisma. Guides, announcements, and articles about Prisma, ORMs, databases, and the data access layer. - [Careers | Prisma](/careers): See open positions at Prisma. Join us to empower developers to build data-intensive applications. - [Prisma | Changelog](/changelog): All the latest Prisma product related updates, features, and improvements. - [Prisma Client - Auto-generated query builder for your data](/client): Prisma is a next-generation ORM that can be used to build GraphQL servers, REST APIs, microservices & more. - [Prisma & CockroachDB | ORM for the cloud-distributed database](/cockroachdb): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build applications with CockroachDB. - [Community | Prisma](/community): Have a question, idea, or contribution for the Prisma ORM? You are not alone! Join hundreds of thousands of Prisma developers. - [Prisma Data Proxy](/data-platform/proxy): Prisma Data Proxy was an external connection pool that helped scale database connections in Serverless environments. - [Prisma ORM Ecosystem](/ecosystem): Explore the variety of tools (from generators, to middleware, to CLIs) created by the Prisma community. - [Prisma Enterprise Event 2021](/enterprise-event-2021): An online conference focused on the challenges large companies and enterprises face with the management of application data. - [Streamline your enterprise development workflow with Prisma](/enterprise): Learn how Prisma ORM can improve your team's productivity and explore our tailored ORM support solutions for enterprises and solution providers. - [Prisma - Event Code of Conduct](/event-code-of-conduct): Read our Event Code of Conduct and how it relates to you. - [Prisma Events](/events): Upcoming events or meetups, conferences and and explore the content from previous events. - [Express & Prisma | Next-Generation ORM for SQL DBs](/express): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build Express apps with MySQL, PostgreSQL & SQL Server databases. - [Fastify & Prisma | Next-Generation ORM for SQL DBs](/fastify): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build Fastify apps with MySQL, PostgreSQL, SQL Server and MongoDB databases. - [Prisma Global Traffic | Prisma](/global): Real time activity of the Prisma global data network. - [GraphQL with Database & Prisma | Next-Generation ORM for SQL Databases](/graphql): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build GraphQL servers with MySQL, PostgreSQL & SQL Server databases. - [Hapi Database & Prisma | Next-Generation ORM for SQL DBs](/hapi): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build hapi apps with MySQL, PostgreSQL & SQL Server databases. - [Learn how to build applications with Prisma | Prisma](/learn): Explore tutorials, examples and other resources to learn how to build web applications using Prisma and various technologies like Next.js, Remix, GraphQL or NestJS. - [Prisma Migrate | Hassle-free Database Migrations](/migrate): Automatically generate fully customizable database schema migrations for PostgreSQL, MySQL, MariaDB or SQLite. - [Prisma & MongoDB | ORM for the scaleable serverless database](/mongodb): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build applications with MongoDB. - [NestJS Database & Prisma | Type-safe ORM for SQL Databases](/nestjs): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build NestJS apps with MySQL, PostgreSQL & SQL Server databases. - [Sign up for Prisma's monthly newsletter](/newsletter): The Prisma newsletter is packed with all the latest releases, updates, blogs, and more. Sign up today to stay up-to-date with Prisma. - [Next.js Database with Prisma | Next-Generation ORM for SQL Databases](/nextjs): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build Next.js apps with MySQL, PostgreSQL & SQL Server databases. - [Prisma Optimize: AI-driven query analysis](/optimize): Gain deep insights and get actionable recommendations to improve your database queries, making your app run faster. - [Prisma | Next-generation ORM for Node.js & TypeScript](/orm): Prisma is a next-generation Node.js and TypeScript ORM for PostgreSQL, MySQL, SQL Server, SQLite, MongoDB, and CockroachDB. It provides type-safety, automated migrations, and an intuitive data model. - [Prisma | Our OSS Friends](/oss-friends): Promoting and supporting the open source community. - [Prisma Partner Network - Terms of Services](/partners/tos): Terms of Services applicable to the Prisma Partner Network. - [Prisma | Partner network](/partners): Join our partner network designed for affiliates, technology partners, and resellers. - [Prisma & PlanetScale | ORM for the scaleable serverless database](/planetscale): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to build applications with PlanetScale - [Prisma Playground | Learn the Prisma ORM in your browser](/playground): The Playground is an interactive learning environment for Prisma. Learn how to send database queries and explore migrations workflows with the Prisma ORM. - [Pricing - Bring Your Own Database - Prisma Data Platform](/pricing/bring-your-own-database): Get started for free using Prisma's products or choose the right plan that meets your needs - [Pricing - Prisma Data Platform](/pricing): Get started for free with Prisma Postgres. Choose the right plan for your workspace based on your project requirements. - [Privacy Policy | Prisma](/privacy): Read our privacy policy and see how it relates to you. - [React with Prisma | Next-Generation Node.js and TypeScript ORM](/react-server-components): Prisma is a next-generation ORM for Node.js & TypeScript. It's the easiest way to connect React apps to MySQL, PostgreSQL, SQL Server, CockroachDB, and MongoDB databases. - [Page /sanity-studio/[[...index]]](/sanity-studio/[[...index]]): No description available. - [Serverless Deep Dive](/serverless): The latest trends, challenges, and solutions in the world of serverless technology shared by practitioners and innovators. - [Prisma Showcase | Customer Success stories](/showcase): Learn how companies are leveraging our powerful, next-generation, type-safe ORM for Node.js. - [HTML Sitemap | Prisma](/sitemap): www.prisma.io sitemap. Find content, documentation, and other useful information about Prisma, databases, and ORMs. - [Service Level Agreement (SLA) | Prisma](/sla): Explore our Service Level Agreement (SLA) detailing our monthly uptime percentage, service credits, and any exclusions. - [Prisma in your stack | Prisma](/stack): Prisma is a Node.js and TypeScript ORM that integrates easily with popular databases, and frameworks. - [Prisma Startup Program](/startups): The Prisma Startup Program is designed to help early-stage founders focus on scaling their businesses, and not managing databases. - [Prisma Studio | Next-generation ORM for Node.js and TypeScript](/studio): The easiest way to explore and manipulate your data in all of your Prisma projects. - [Support Policy | Prisma](/support-policy): Read our support policy and see how it relates to you. - [Prisma Support](/support): Explore comprehensive support articles, resources, and guides for Prisma ORM, Accelerate, and Pulse. Find the best solution and get help from our team. - [Terms of Service](/terms): Read our terms of services and see how they relate to you. - [TypedSQL: Fully type-safe raw SQL in Prisma ORM ](/typedsql): Write raw sql queries with fully type-safety and auto-completion in Prisma ORM. Get type-safe database queries without sacrificing the power and flexibility of raw SQL. - [TypeScript & Prisma | TypeScript ORM for SQL Databases](/typescript): Prisma is a TypeScript ORM that makes you more confident with type safe database access. It's the easiest way to access SQL databases in Node.js with TypeScript - [A Business Case for Extended ESOP Exercise Windows](/blog/esop-exercise-windows): Explore extending ESOPs to 10 years, considering fairness, economics, benefits, challenges with Prisma's example, and startup compensation. - [Prisma 2.10 Adds Preview Support for Microsoft SQL Server](/blog/prisma-sql-server-support-preview-a4anl2gd8d3a): No description available. - [How TypeScript 4.9 `satisfies` Your Prisma Workflows](/blog/satisfies-operator-ur8ys8ccq7zb): Learn how TypeScript 4.9''s new `satisfies` operator can help you write type-safe code with Prisma - [Bringing Prisma ORM to React Native and Expo](/blog/bringing-prisma-orm-to-react-native-and-expo): Prisma ORM now provides Early Access support for React Native and Expo. The integration introduces reactive queries, using React hooks to auto-update the UI when the underlying data changes. - [Prisma ORM Support for Edge Functions is Now in Preview](/blog/prisma-orm-support-for-edge-functions-is-now-in-preview): We're thrilled to share that you can now access your database with Prisma ORM from Vercel Edge Functions and Cloudflare Workers. - [How We're Constantly Improving the Performance of Prisma](/blog/performance-engineering-aeduv0rei0jk): No description available. - [Fullstack App With TypeScript, PostgreSQL, Next.js, Prisma & GraphQL: Deployment](/blog/fullstack-nextjs-graphql-prisma-5-m2fna60h7c): Learn how to build a fullstack app using TypeScript, PostgreSQL, Next.js, GraphQL and Prisma. In this article you are going to deploy your app to Vercel - [Improve your application’s performance with AI-driven analysis and recommendations](/blog/optimize-now-generally-available): Enhance database performance with Prisma Optimize's AI-powered query insights. - [Announcing Tweets for Trees](/blog/tweets-for-trees-arboreal): With Earth Day coming up on the 22nd, Prisma will be planting a tree for every tweet about Prisma we see in April - [Prisma Products Are Now Available on AWS Marketplace](/blog/aws-marketplace): AWS Marketplace customers can purchase Prisma products through AWS Marketplace. - [Prisma Raises $12M to Build the Next Generation of Database Tools](/blog/prisma-raises-series-a-saks1zr7kip6): No description available. - [How Prisma and GraphQL fit together](/blog/prisma-and-graphql-mfl5y2r7t49c): No description available. - [Prisma Client (Preview): Simplified & Type-safe Database Access](/blog/prisma-client-preview-ahph4o1umail): No description available. - [How Prisma Helps Rapha Manage Their Mobile Application Data](/blog/helping-rapha-access-data-across-platforms-n3jfhtyu6rgn): No description available. - [Key takeaways from the Discover Data DX virtual event](/blog/datadx-event-recap-z5Pcp6HzBz5m): Highlights from the Discover Data DX virtual event hosted by Prisma on December 7th, 2023, where industry leaders discussed the significance and principles of Data DX. - [Prisma Client Extensions Are Now Production Ready](/blog/client-extensions-ga-4g4yIu8eOSbB): Make Prisma Client do even more with Client extensions, now Generally Available. Extend your client, models, queries, and results to tailor Prisma Client to your use case. - [Prisma 2.0 is in Beta: Type-safe Database Access with Prisma Client](/blog/prisma-2-beta-b7bcl0gd8d8e): No description available. - [Accelerate in Preview: Global Database Cache & Scalable Connection Pool](/blog/accelerate-preview-release-ab229e69ed2): Accelerate is going into Preview! Learn how to enable high-speed, scalable applications with a global cache and connection pooler. - [Prisma Ambassador Program — Building A Community of Experts](/blog/ambassador-program-nxkWGcGNuvFx): We are thrilled to announce the launch of the Ambassador Program to empower the Prisma community, while also helping individual contributors build their own brand. - [Build A Fullstack App with Remix, Prisma & MongoDB: Authentication](/blog/fullstack-remix-prisma-mongodb-2-ZTmOy58p4re8): Learn how to build and deploy a fullstack application using Remix, Prisma, and MongoDB. In this article, we will be setting up authentication for our Remix application using session-based authentication. - [We Made Prisma Studio Even Better](/blog/we-made-prisma-studio-even-better): Prisma Studio has just received some great new UX/DX upgrades and is now available in the Prisma Console. Read to find out how you can be more productive in Prisma Studio! - [Fullstack App With TypeScript, PostgreSQL, Next.js, Prisma & GraphQL: Data Modeling](/blog/fullstack-nextjs-graphql-prisma-oklidw1rhw): Build a fullstack app using TypeScript, PostgreSQL, Next.js, GraphQL and Prisma. In this article we're going to create the app's data model - [Prisma Client Just Became a Lot More Flexible: Prisma Client Extensions (Preview)](/blog/client-extensions-preview-8t3w27xkrxxn): Learn how Prisma Client extensions (Preview) enable a variety of new use cases for the Prisma ORM. - [Prisma Adopts Semantic Versioning (SemVer)](/blog/prisma-adopts-semver-strictly): We are adjusting Prisma's release policy to adhere more strictly to Semantic Versioning. In the future, breaking changes in the stable development surface (General Availability) will only be rolled out in major version increments. - [Enabling CORS for Express-GraphQL & Apollo Server | Prisma](/blog/enabling-cors-for-express-graphql-apollo-server-1ef999bfb38d): No description available. - [Prisma Accelerate now in General Availability](/blog/accelerate-ga-release-I9cQM6bSf2g6): Supercharge your applications with Prisma Accelerate's scalable connection pooling and global edge caching. Plus, enjoy our exclusive launch offer. - [New Tooling to Improve Your GraphQL Workflows](/blog/new-tooling-to-improve-your-graphql-workflows-7240c81e1ba3): No description available. - [Prisma Postgres®: Building a Modern PostgreSQL Service Using Unikernels & MicroVMs](/blog/announcing-prisma-postgres-early-access): At Prisma, we believe that deploying a database should be as simple as adding a new page in Notion. Today, we are excited to share the first milestone towards this vision: Prisma Postgres® gives developers an always-on database with pay-as-you-go pricing, thanks to our unique architecture design. - [Improving Query Performance with Indexes using Prisma: Hash Indexes](/blog/improving-query-performance-using-indexes-3-kduk351qv1): Learn how you can optimize a slow database query in your application with a Hash index using Prisma - [Studio for Prisma Postgres (Preview): View & Edit Your Data Online](/blog/studio-for-prisma-postgres-view-and-edit-your-data-online): Prisma Studio is now available in the Platform Console for Prisma Postgres databases. It’s the easiest way to explore and manipulate the data in your Prisma Postgres instance. - [How Poppy Uses Prisma Client to Ship Confidently](/blog/poppy-customer-success-story-swnWQcGRRvpd): Poppy offers rides of all kinds through its mobile app. Whether it's a car, scooter, or e-step, Poppy has it. Prisma plays a vital role in helping Poppy ship quickly and confidently and is a big reason they've just hit 1.5 million total rides taken. - [Building a REST API with NestJS and Prisma: Error Handling](/blog/nestjs-prisma-error-handling-7D056s1kOop2): In this tutorial, you will implement error handling in a NestJS application. You will learn two ways to handle errors: directly in your application code and by creating an exception filter. - [Building on an Established Community: Prisma Now on Discord](/blog/announcing-discord-1LiAOpS7lxV9): Prisma is excited to expand the established Prisma Community Discord and further collaborate with the Prisma community. - [How Solin Uses Prisma Accelerate to Serve 2.5M Database Queries per Day](/blog/how-solin-uses-prisma-accelerate-to-serve-2-5m-database-queries-per): Learn how Prisma Accelerate has contributed to Solin's success by enhancing performance and reliability with its scalable connection pool and global database cache. - [How We Sped Up Serverless Cold Starts with Prisma by 9x](/blog/prisma-and-serverless-73hbgKnZ6t): Learn about the Prisma's goals, the hurdles we are overcoming, and how you can help. - [Try Prisma: The Fastest Way to Explore Prisma Examples](/blog/try-prisma-announcment-Kv6bwRcdjd): Announcing: Try Prisma. A CLI utility that allows you to easily set up and try out an example projects using Prisma. - [What's new in Prisma? (Q1/22)](/blog/wnip-q1-dsk0golh8v): Learn about everything that has happened in the Prisma ecosystem and community from January to March 2022. - [Make Your Applications Fast Globally](/blog/make-your-applications-fast-globally): Speed up edge and serverless apps by fixing database latency, cold starts, and slow queries. - [We Transitioned Prisma Accelerate to IPv6 Without Anyone Noticing](/blog/accelerate-ipv6-first): In July 2023, AWS announced the decision to begin charging for IPv4 addresses beginning in February 2024. This move had a major impact on Prisma Accelerate for reasons we’ll get into, prompting us to go all-in on IPv6. Join us for a deep dive into how we approached our IPv6 migration, lessons learned, and the outcome for users of Prisma Accelerate. - [Speed and Savings: Caching Database Queries with Prisma Accelerate](/blog/caching-database-queries-with-prisma-accelerate): Achieve faster performance and cost savings with Prisma Accelerate's easy per-query caching, eliminating the need for maintaining caching infrastructure. Experience faster queries, without the hassle! - [Prisma Adds Support for MongoDB — Join Our Launch Week Celebrations 🎉](/blog/mongodb-general-availability-pixnun6mffmu): Prisma now supports MongoDB! Read this article to learn more about the benefits developers get when using MongoDB with Prisma and join our one-week celebration at the end of April. - [Cloudflare, Unikernels & Bare Metal: Life of a Prisma Postgres Query](/blog/cloudflare-unikernels-and-bare-metal-life-of-a-prisma-postgres-query): Take a look under the hood of the most innovative PostgreSQL database on the market and learn how a query travels through Cloudflare, unikernels and bare metal. - [The Ultimate Guide to Testing with Prisma: Unit Testing](/blog/testing-series-2-xPhjjmIEsM): Learn about what unit testing is and how to approach it in an application using Prisma Client. - [Using GraphQL Nexus with a Database](/blog/using-graphql-nexus-with-a-database-pmyl3660ncst): No description available. - [Prisma Support for Tracing and Metrics Is Now in Preview](/blog/tracing-launch-announcement-pmk4rlpc0ll): We are excited to launch two new features in Preview: Tracing and Metrics. Try them out and let us know what you think! - [Relay Modern’s @connection directive](/blog/relay-moderns-connection-directive-1ecd8322f5c8): No description available. - [Relay vs Apollo - Comparing GraphQL clients for React apps](/blog/relay-vs-apollo-comparing-graphql-clients-for-react-apps-b40af58c1534): No description available. - [Improving Query Performance with Indexes using Prisma: Introduction](/blog/improving-query-performance-using-indexes-1-zuLNZwBkuL): Learn the fundamentals of database indexes: what they are, the problem they solve, and their benefit and cost - [Announcing Prisma Day 2022! Our First Hybrid Prisma Day.](/blog/prisma-day-2022-announcement-v8t178dsf): We’re thrilled to announce that this summer, Prisma Day will feature both in-person and remote events and workshops. Prisma Day will take place June 15th and 16th' - [Increase Database Security With Static IP Support in Prisma Accelerate](/blog/accelerate-static-ip-support): Prisma Accelerate now supports Static IPs, ensuring secure database connections with predictable IPs for controlled access. - [How to use `create-react-native-app` with GraphQL & Apollo](/blog/tutorial-using-create-react-native-app-with-graphql-apollo-e630aee3ae1e): No description available. - [Organize Your Prisma Schema into Multiple Files in v5.15](/blog/organize-your-prisma-schema-with-multi-file-support): With Prisma ORM 5.15.0 you can now use multiple Prisma Schema files instead of just one. Learn how to enable this Preview feature and check out a real-world example. - [How Panther champions talent over geography with Prisma](/blog/Panther-customer-story-pdmdrRhTupsl): Prisma plays a key role in the Panther's tech stack, allowing individual teams to have the freedom they need while also maintaining data consistency - [Support for Serverless Database Drivers in Prisma ORM Is Now in Preview](/blog/serverless-database-drivers-KML1ehXORxZV): Prisma support for JavaScript-based serverless database drivers is now in Preview, enabling you to connect to Neon and PlanetScale via HTTP and WebSockets. - [Prisma Is Expanding Its Executive Team](/blog/coo-announcement-aer1fgviirjb): Announcement about new COO joining Prisma - [Prisma 2.0: Confidence and productivity for your database](/blog/announcing-prisma-2-n0v98rzc8br1): No description available. - [The Ultimate Guide to Testing with Prisma: Mocking Prisma Client](/blog/testing-series-1-8eRB5p0Y8o): Learn about mocking and spying, why they are useful, and how they can be done with Prisma Client. - [Launching the Data DX Manifesto: Shaping a new paradigm in data-driven development](/blog/datadx-manifesto-ikgyqj170k8h): Prisma introduces Data DX (Data Developer Experience) as a fresh approach for effortlessly building data-driven applications. - [Performance Benchmarks: Comparing Query Latency across TypeScript ORMs & Databases](/blog/performance-benchmarks-comparing-query-latency-across-typescript-orms-and-databases): Which ORM is the fastest? We have created open-source performance benchmarks to compare query latencies for Prisma ORM, TypeORM and Drizzle ORM. - [Backend with TypeScript, PostgreSQL & Prisma: Authentication & Authz](/blog/backend-prisma-typescript-orm-with-postgresql-auth-mngp1ps7kip4): No description available. - [Fullstack App With TypeScript, PostgreSQL, Next.js, Prisma & GraphQL: Image upload](/blog/fullstack-nextjs-graphql-prisma-4-1k1kc83x3v): Learn how to build a fullstack app using TypeScript, PostgreSQL, Next.js, GraphQL and Prisma. In this article you are going to learn how to add image upload using AWS S3 - [5 Tools for Documenting Your Web API](/blog/documenting-apis-mjjpZ7E7NkVP): No description available. - [Nexus 1.0: A Major Release for Type-Safe, Code-First GraphQL APIs](/blog/announcing-the-release-of-nexus-schema-v1-b5eno5g08d0b): Nexus, the library for building code-first, type-safe GraphQL APIs has just reached 1.0. - [How to use `create-react-app` with GraphQL & Apollo](/blog/how-to-use-create-react-app-with-graphql-apollo-62e574617cff): No description available. - [Build A Fullstack App with Remix, Prisma & MongoDB: CRUD, Filtering & Sorting](/blog/fullstack-remix-prisma-mongodb-3-By5pmN5Nzo1v): Learn how to build and deploy a fullstack application using Remix, Prisma, and MongoDB. In this article, we will be building the functionality that allows users to send kudos to each other along with some searching and sorting options. - [Developer Experience Redefined: Prisma & Cloudflare Lead the Way to Data DX](/blog/cloudflare-partnership-qerefgvwirjq): Prisma introduces Data DX and announces a partnership with Cloudflare - [Type-safe JavaScript with JsDoc](/blog/type-safe-js-with-jsdoc-typeSaf3js): JsDoc is a great tool for documenting code and providing type-safety in your JavaScript project without any additional configuration. Learn what JsDoc is, how it works, the benefits it provides, and how to use it in your project. - [Fullstack App With TypeScript, PostgreSQL, Next.js, Prisma & GraphQL: Authentication](/blog/fullstack-nextjs-graphql-prisma-3-clxbrcqppv): Learn how to build a fullstack app using TypeScript, PostgreSQL, Next.js, GraphQL, and Prisma. In this article, you will learn how to add authentication and authorization to your application using Auth0 - [Announcing the Prisma FOSS Fund](/blog/prisma-foss-fund-announcement-XW9DqI1HC24L): Prisma has started a fund to support independent free and open source software (FOSS) teams. Each month, we will donate $5,000 to a selected project to maintain its work and continue its development. - [Improving the Prisma Visual Studio Code Extension with WebAssembly](/blog/vscode-extension-prisma-rust-webassembly): Learn about the Prisma schema and how we improved reliability and simplified the Prisma Visual Studio Extension with Rust and WebAssembly. - [Achievement Unlocked: Compliance for SOC2 Type II, HIPAA, GDPR, and ISO27001](/blog/compliance-reqs-complete): Prisma completes the compliance requirements for GDPR, HIPAA, ISO27001 and SOC2-TypeII certifications - [The Ultimate Guide to Testing with Prisma: End-To-End Testing](/blog/testing-series-4-OVXtDis201): Learn all about end-to-end testing, how to set up a testing environment and how to write tests using Playwright and Prisma. - [Introducing the Read Replicas Extension for Prisma Client](/blog/read-replicas-prisma-client-extension-f66prwk56wow): Distribute read traffic across replicas using the new read replicas extension for Prisma Client. - [Database Access in Serverless Environments with the Prisma Data Proxy](/blog/prisma-data-proxy-xb16ba0p21): The Prisma Data Proxy (Early Access) enables developers to use databases in serverless environments by managing a connection pool. - [Prisma 2.27 Adds Preview Support for MongoDB](/blog/prisma-mongodb-preview-release): Prisma support for MongoDB - bringing the power of type safety in Prisma to MongoDB - [Announcing TypedSQL: Make your raw SQL queries type-safe with Prisma ORM](/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm): Prisma ORM now supports the ability to write raw sql queries and have the inputs and outputs be fully type-safe! Get the benefit of a high-level API with the power of raw SQL. - [End-To-End Type-Safety with GraphQL, Prisma & React: Codegen & Deployment](/blog/e2e-type-safety-graphql-react-4-JaHA8GbkER): Learn how to build a fully type-safe application with GraphQL, Prisma, and React. This article walks you through setting up code generation to allow you to keep your TypeScript types in sync across your frontend and API. You will also deploy your completed project. - [The Prisma Data Platform is now Generally Available](/blog/prisma-data-platform-now-generally-available-8D058s1BqOL1): The Prisma Data Platform solves problems developers face when working with databases in production, and is now generally available. - [Best Practices To Speed Up Your Serverless Applications](/blog/how-to-improve-startup-times-kdRB9MjPEv): Learn about some best practices to speed up your serverless applications using Prisma. - [How Prisma & Serverless Fit Together](/blog/how-prisma-and-serverless-fit-together-iaSfcPQVi0): Learn about how Prisma views the evolution of deployment types, serverless and the edge, and the problems we want to solve in the space. - [Building a REST API with NestJS and Prisma: Input Validation & Transformation](/blog/nestjs-prisma-validation-7D056s1kOla1): Learn how to build a backend REST API with NestJS, Prisma, PostgreSQL and Swagger. In this article, you will learn how to perform input validation and transformation for your API. - [Why Use Prisma to Build Your Data Layer in 2024?](/blog/why-prisma-2024): Discover how Prisma's powerful tools help you build a scalable, secure, and high-performing data layer. From the popular TypeScript and Node.js ORM to advanced features like connection pooling, caching, and query optimization, Prisma equips you to scale your app to millions of users. - [Introducing our Build, Fortify, Grow (BFG) Framework](/blog/bfg): An overview of how Prisma products interoperate at each stage and aid in enhancing data-driven application development. - [Prisma Playground: An Interactive Learning Experience for Prisma](/blog/announcing-prisma-playground-xeywknkj0e1p): Explore the Prisma Client API to send database queries and Prisma Migrate worklfows to evolve your database schema in an interactive environment. - [Prisma Support for CockroachDB Is Production Ready 🪳](/blog/cockroach-ga-5JrD9XVWQDYL): Prisma's support for CockroachDB is now in production ready! Read this article to learn about the features and benefits of Prisma with CockroachDb. - [How Elsevier Piloted an Innovative Publication Process Quickly and Flexibly with Prisma](/blog/elsevier-customer-story-SsAASKagMHtN): Elsevier is a global leader in information and analytics in scientific publishing. Learn how they modernized the publication process efficiently and flexibly with Prisma. - [Prisma Postgres: The Future of Serverless Databases](/blog/prisma-postgres-the-future-of-serverless-databases): Prisma Postgres is finally ready for production! Built on unikernels, it enables a unique set of benefits like no cold starts, connection pooling, edge caching, & more! - [End-To-End Type-Safety with GraphQL, Prisma & React: Frontend](/blog/e2e-type-safety-graphql-react-1-I2GxIfxkSZ): Learn how to build a fully type-safe application with GraphQL, Prisma, and React. This article walks you through building a type-safe React app that accesses a GraphQL API. - [Introducing GraphQL Nexus: Code-First GraphQL Server Development](/blog/introducing-graphql-nexus-code-first-graphql-server-development-ll6s1yy5cxl5): No description available. - [What's new in Prisma? (Q2/21)](/blog/whats-new-in-prisma-q2-2021-z70muetl386d): Learn about everything that has happened in the Prisma ecosystem and community from April to June 2021. - [What's new in Prisma? (Q2/22)](/blog/wnip-q2-2022-pmn7rulcj8x): Learn about everything that has happened in the Prisma ecosystem and community from April to July 2022. - [Prisma ORM Manifesto: Clarity and Collaboration](/blog/prisma-orm-manifesto): Refocusing Prisma on what matters most: clear governance, better issue management, timely feature releases, and community collaboration - [GraphQL Server Basics: The Network Layer](/blog/graphql-server-basics-the-network-layer-51d97d21861): No description available. - [Build A Fullstack App with Remix, Prisma & MongoDB: Project Setup](/blog/fullstack-remix-prisma-mongodb-1-7D0BfTXBmB6r): Learn how to build and deploy a fullstack application using Remix, Prisma, and MongoDB. In this article, we will be setting up our project, the MongoDB instance, Prisma, and begin modeling out some of our data for the next section of this series. - [Watch the Talks from Prisma Day 2019!](/blog/watch-prisma-day-talks-z11sg6ipb3i1): No description available. - [Join the Prisma Insider Program and Shape the Future of our Products](/blog/prisma-insider-program): No description available. - [Prisma ORM 6.6.0: ESM Support, D1 Migrations & MCP Server](/blog/prisma-orm-6-6-0-esm-support-d1-migrations-and-prisma-mcp-server): The v6.6.0 Prisma ORM release is packed with exciting features: ESM support, migrations on Cloudflare D1, an MCP server to manage DBs & a lot more. - [Prisma Migrate Preview - Database Migrations Simplified](/blog/prisma-migrate-preview-b5eno5g08d0b): Prisma Migrate Preview - database schema migrations simplified with declarative data modeling and auto-generated and customizable SQL migrations - [Application Monitoring Best Practices](/blog/monitoring-best-practices-monitor5g08d0b): Learn the best practices for monitoring your application and how it fits into the development cycle. - [Open Sourcing GraphQL Middleware - Library to Simplify Your Resolvers](/blog/graphql-middleware-zie3iphithxy): No description available. - [Database access on the Edge with Next.js, Vercel & Prisma Accelerate](/blog/database-access-on-the-edge-8F0t1s1BqOJE): Learn how you can query databases in Edge environments using Prisma and the Prisma Accelerate. - [Helping Founders Scale Faster and Build Smarter](/blog/prisma-startup-program): No description available. - [GraphQL Schema Stitching explained: Schema Delegation](/blog/graphql-schema-stitching-explained-schema-delegation-4c6caf468405): No description available. - [How Grover Moves Faster with Prisma](/blog/grover-customer-success-story-nxkWGcGNuvFd): Grover has many individual development teams that each work in slightly different stacks. Prisma is catching on as a way to help their teams move faster and be more confident in their code. - [Monitor Your Server with Tracing Using OpenTelemetry & Prisma](/blog/tracing-tutorial-prisma-pmkddgq1lm2): This tutorial will help you to get started with Prisma's tracing feature and OpenTelemetry in Node.js. Learn how to integrate tracing and OpenTelemetry into a web server built with Express and Prisma. - [Database Caching: A Double-Edged Sword? Examining the Pros and Cons](/blog/benefits-and-challenges-of-caching-database-query-results-x2s9ei21e8kq): Discover the advantages and hurdles of caching database query results. Learn how caching enhances performance, scalability, and resource utilization, while also delving into the associated challenges. - [Hassle-Free Database Migrations with Prisma Migrate](/blog/prisma-migrate-ga-b5eno5g08d0b): Prisma Migrate is ready for use in production - Database schema migration tool with declarative data modeling and auto-generated, customizable SQL migrations - [How do GraphQL remote schemas work?](/blog/how-do-graphql-remote-schemas-work-7118237c89d7): No description available. - [GraphQL SDL — Schema Definition Language](/blog/graphql-sdl-schema-definition-language-6755bcb9ce51): No description available. - [Getting Started with Relay Modern](/blog/getting-started-with-relay-modern-46f8de6bd6ec): No description available. - [Prisma Postgres is completely free during Early Access](/blog/prisma-postgres-free-during-early-access): We decided to make Prisma Postgres free to use during Early Access so everyone can try it - [How Tryg has leveraged Prisma to democratize data](/blog/tryg-customer-story-pdmdrRhTupvd): Prisma was a critical technology that enabled Tryg to democratize billions of records from different data sources, through the Tryg 360 platform. - [All you need to know about Apollo Client 2](/blog/all-you-need-to-know-about-apollo-client-2-7e27e36d62fd): No description available. - [Introducing Accelerate in Early Access](/blog/announcing-accelerate-usrvpi6sfkv4): Query up to 1000x faster on any Prisma-supported database with our new distributed cache and scalable connection pool for Serverless apps. - [Learn TypeScript: A Pocketguide Tutorial](/blog/learn-typescript-a-pocketguide-tutorial-q329XmXQHUjz): No description available. - [Prisma Postgres: Now in Your Favorite Environment](/blog/prisma-postgres-now-in-your-favorite-environment): Integrate Prisma Postgres in your Netlify site in less 5 minutes or quickly try it out without leaving your browser using the official Project IDX template. - [Announcing Prisma's MCP Server: Vibe Code with Prisma Postgres](/blog/announcing-prisma-s-mcp-server-vibe-code-with-prisma-postgres): With Prisma’s MCP server, Cursor, Windsurf and other AI tools, can now provision and manage Postgres databases for your apps.. - [Prisma 2 Preview: Type-safe Database Access & Declarative Migrations](/blog/announcing-prisma-2-zq1s745db8i5): No description available. - [Announcing: Instant Prisma Postgres for AI Coding Agents](/blog/announcing-prisma-postgres-for-ai-coding-agents): No description available. - [Vibe Coding with Limits — How to Build Apps in the Age of AI](/blog/vibe-coding-with-limits-how-to-build-apps-in-the-age-of-ai): Discover how developers can use AI coding tools to build robust, maintainable software without sacrificing quality. - [Full Stack Type Safety with Angular, Nest, Nx, and Prisma](/blog/full-stack-typesafety-with-angular-nest-nx-and-prisma-CcMK7fbQfTWc): No description available. - [Adding Database Access to your SvelteKit App with Prisma](/blog/sveltekit-prisma-kvCOEoeQlC): Learn how you can interact with a database from a SvelteKit application using Prisma. - [Announcing Prisma Day](/blog/announcing-prisma-day-50cg22nn40qk): No description available. - [The Guild Takes over Development of the GraphQL CLI & Other Libraries](/blog/the-guild-takes-over-oss-libraries-vvluy2i4uevs): No description available. - [Build an App With Svelte and TypeScript](/blog/build-an-app-with-svelte-and-typescript-PZDY3t93qAtd): No description available. - [Prisma Raises $40M to Build the Application Data Platform](/blog/series-b-announcement-v8t12ksi6x): We are excited to announce that we have raised our Series B funding. Read this article to learn more about our vision of an Application Data Platform built for development teams and organizations. - [Announcing: Prisma Postgres Integration for Vercel Marketplace](/blog/connect-your-apps-to-prisma-postgres-via-vercel-marketplace-integration): We’re thrilled to announce that you can now create and manage Prisma Postgres instances without leaving your Vercel Dashboard. - [How Prisma ORM Became the Most Downloaded ORM for Node.js](/blog/how-prisma-orm-became-the-most-downloaded-orm-for-node-js): Reflect on three years of Prisma ORM development with this article showing how Prisma ORM became the most downloaded ORM for Node.js - [Formbricks and Prisma Accelerate: Solving scalability together](/blog/formbricks-and-prisma-accelerate-solving-scalability-together): Learn how Formbricks tackled performance bottlenecks and enhanced server performance and user experience with Prisma Accelerate. - [How iopool refactored their app in less than 6 months with Prisma](/blog/iopool-customer-success-story-uLsCWvaqzXoa): In 2020, iopool decided to rearchitect its app and use Prisma for their database needs. Doing so helped them move fast with confidence and has greatly simplified their development process. - [Microsoft SQL Server Support in Prisma is Production-Ready](/blog/prisma-microsoft-sql-server-azure-sql-production-ga): Microsft SQL Server and Azure SQL support in Prisma is now Generally Available - [GraphQL vs Firebase](/blog/graphql-vs-firebase-496498546142): No description available. - [What's new in Prisma? (Q3/21)](/blog/wnip-q3-hpk7pyth8v): Learn about everything that has happened in the Prisma ecosystem and community from July to September 2021.' - [Prisma ORM Now Lets You Choose the Best Join Strategy (Preview)](/blog/prisma-orm-now-lets-you-choose-the-best-join-strategy-preview): Choose between DB-level and application-level joins to pick the most performant approach for your relation queries. - [Overcoming Database Challenges in Serverless & Edge Applications](/blog/overcoming-challenges-in-serverless-and-edge-environments-TQtONA0RVxuW): Learn best practices around deploying stateful apps in traditionally stateless environments. - [Prisma raises $4.5M to build the GraphQL data layer for all databases](/blog/prisma-raises-4-5m-to-build-the-graphql-data-layer-for-all-databases-663484df0f60): No description available. - [Tutorial: Render Props in React Apollo 2.1](/blog/tutorial-render-props-in-react-apollo-2-1-199e9e2bd01e): No description available. - [SQLite on the Edge: Prisma Support for Turso is in Early Access](/blog/prisma-turso-ea-support-rXGd_Tmy3UXX): Prisma support for Turso is now in Early Access, enabling you to bring SQLite closer to your users. Try it out! - [Improving Query Performance with Indexes using Prisma: B-Tree Index](/blog/improving-query-performance-using-indexes-2-MyoiJNMFTsfq): Learn how you can optimize a slow database query in your application with a B-Tree index using Prisma - [Prisma's Cloud Connectivity Report 2024](/blog/cloud-connectivity-report-2024): The Prisma Cloud Connectivity Report 2024 analyzes AWS and Cloudflare latency, highlighting regions with the fastest and slowest connectivity. - [From Rust to TypeScript: A New Chapter for Prisma ORM](/blog/from-rust-to-typescript-a-new-chapter-for-prisma-orm): Learn why Prisma ORM utilizes a query engine built in Rust and how it is evolving - [Introducing Prisma Nuxt: Simplifying Data Management for Nuxt Apps](/blog/introducing-prisma-nuxt): Use Prisma ORM in your Nuxt.js app easily with the Prisma Nuxt module for type-safe queries and database management. - [Prisma 5: Faster by Default](/blog/prisma-5-f66prwkjx72s): Prisma 5.0.0 introduces new changes that make it significantly faster. These changes especially improve the experience using Prisma in serverless environments. - [A Collaborative Data Browser for Your Database on the Web](/blog/prisma-online-data-browser-ejgg5c8p3u4x): Prisma's online data browser allows you to easily collaborate with your team on your data. Try the Early Access version and share your feedback with us! - [Prisma Schema Language: The Best Way to Define Your Data](/blog/prisma-schema-language-the-best-way-to-define-your-data): An article discussing the Prisma Schema Language and comparing it to TypeScript-based schemas. - [Build A Fullstack App with Remix, Prisma & MongoDB: Referential Integrity & Image Uploads](/blog/fullstack-remix-prisma-mongodb-4-l3MwEp4ZLIm2): Learn how to build and deploy a fullstack application using Remix, Prisma, and MongoDB. In this article, we will be building the profile settings section of the website and enhancing the data model to provide better referential integrity.' - [GraphQL Europe 2018: The GraphQL community comes together in Berlin](/blog/graphql-eu-18-eiw8bishe2di): No description available. - [State of Prisma 2 (December 2019)](/blog/state-of-prisma-2-december-rcrwcqyu655e): No description available. - [How Prisma Allowed Pearly to Scale Quickly with an Ultra-Lean Team](/blog/pearly-plan-customer-success-pdmdrRhTupve): Pearly provides platforms for dentists to create better and reliable revenue streams and affordable care plans for their patients. Learn how Prisma has helped them scale quickly with Prisma with an ultra-lean team. - [Enabling static egress IPs in the Prisma Data Platform](/blog/data-platform-static-ips): Static egress IP support ensures that the Prisma Data Platform connects to your databases through public static IP addresses helping you keep your database secure. - [Database Access in React Server Components](/blog/database-access-in-react-server-components-r2xgk9aztgdf): No description available. - [How migrating from Sequelize to Prisma allowed Invisible to scale](/blog/how-migrating-from-Sequelize-to-Prisma-allowed-Invisible-to-scale-i4pz2mwu6q): Invisible combines best-in-class, easy to implement, scalable automation solutions. Prisma was crucial in future proofing their stack and supporting its scale. - [New Release Process for Prisma](/blog/improving-prismas-release-process-yaey8deiwaex): No description available. - [Top 5 Myths about Prisma ORM](/blog/top-5-myths-about-prisma-orm): Discover the truth behind five common misconceptions about Prisma ORM. In this article, we debunk the myths, explore their origins, and separate fact from fiction. - [What's new in Prisma? (Q4/21)](/blog/wnip-q4-dsk0golh8v): Learn about everything that has happened in the Prisma ecosystem and community from October to December 2021 - [Prisma support for CockroachDB is now in Preview](/blog/prisma-preview-cockroach-db-release): Learn about the Preview release of the Prisma CockroachDB connector and the benefits of using Prisma with CockroachDB. - [Securely Access Prisma Postgres from the Frontend (Early Access)](/blog/securely-access-prisma-postgres-from-the-frontend-early-access): Define security rules for Prisma Postgres in TypeScript and securely talk to your database directly from your React, Vue, Svelte, or any other frontend apps. - [Prisma 6: Better Performance, More Flexibility & Type-Safe SQL](/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql): Today, we are releasing Prisma v6! Since the last major version, we have been hard at work incorporating user feedback, making Prisma ORM faster and more flexible, and adding amazing features like type-safe raw SQL queries. - [Backend with TypeScript, PostgreSQL & Prisma: REST, Validation & Tests](/blog/backend-prisma-typescript-orm-with-postgresql-rest-api-validation-dcba1ps7kip3): No description available. - [New Datamodel Syntax: More Schema Control & Simpler Migration](/blog/datamodel-v11-lrzqy1f56c90): No description available. - [Introducing Platform Environments](/blog/introducing-platform-environments): Introducing Platform Environments & Early Access Prisma Data Platform integration to Prisma CLI. - [Backend with TypeScript, PostgreSQL & Prisma: CI & Deployment](/blog/backend-prisma-typescript-orm-with-postgresql-deployment-bbba1ps7kip5): No description available. - [Tutorial: Building a Realtime GraphQL Server with Subscriptions](/blog/tutorial-building-a-realtime-graphql-server-with-subscriptions-2758cfc6d427): No description available. - [Building a REST API with NestJS and Prisma: Authentication](/blog/nestjs-prisma-authentication-7D056s1s0k3l): In this tutorial, you will learn how to implement JWT authentication with NestJS, Prisma and PostgreSQL. You will also learn about salting passwords, security best practises and how to integrate with Swagger. - [Fullstack App With TypeScript, PostgreSQL, Next.js, Prisma & GraphQL: GraphQL API](/blog/fullstack-nextjs-graphql-prisma-2-fwpc6ds155): Learn how to build a fullstack app using TypeScript, PostgreSQL, Next.js, GraphQL and Prisma. In this article you are going to create a GraphQL API' - [How Prisma Supports Database Transactions](/blog/how-prisma-supports-transactions-x45s1d5l0ww1): No description available. - [GraphQL Server Basics: GraphQL Schemas, TypeDefs & Resolvers Explained](/blog/graphql-server-basics-the-schema-ac5e2950214e): No description available. - [Build Applications at the Edge with Prisma ORM & Cloudflare D1 (Preview)](/blog/build-applications-at-the-edge-with-prisma-orm-and-cloudflare-d1-preview): Prisma ORM now supports Cloudflare D1 databases. Read this article to learn how to query D1 from a Cloudflare Worker. - [End-To-End Type-Safety with GraphQL, Prisma & React: API Prep](/blog/e2e-type-safety-graphql-react-2-j9mEyHY0Ej): Learn how to build a fully type-safe application with GraphQL, Prisma, and React. This article walks you through setting up a TypeScript project, a PostgreSQL database, and Prisma. - [GraphQL Basics: Demystifying the `info` Argument in GraphQL Resolvers](/blog/graphql-server-basics-demystifying-the-info-argument-in-graphql-resolvers-6f26249f613a): No description available. - [The Problems of "Schema-First" GraphQL Server Development](/blog/the-problems-of-schema-first-graphql-development-x1mn4cb0tyl3): No description available. - [How to build a Real-Time Chat with GraphQL Subscriptions and Apollo 🌍](/blog/how-to-build-a-real-time-chat-with-graphql-subscriptions-and-apollo-d4004369b0d4): No description available. - [GraphQL Directive Permissions — Authorization Made Easy](/blog/graphql-directive-permissions-authorization-made-easy-54c076b5368e): No description available. - [The Ultimate Guide to Testing with Prisma: Integration Testing](/blog/testing-series-3-aBUyF8nxAn): Learn about how to plan, set up and write integration tests for your API. - [Explore insights and improve app performance with Prisma Optimize](/blog/prisma-optimize-early-access): Explore insights into your database operations to diagnose performance problems and enhance your application's performance and user experience. - [Building a REST API with NestJS and Prisma](/blog/nestjs-prisma-rest-api-7D056s1BmOL0): Learn how to build a backend REST API with NestJS, Prisma, PostgreSQL and Swagger. In this article, you will learn how to set up the project, build the API and document it with Swagger. - [How Labelbox Supports Vast Machine Learning Needs with Prisma](/blog/labelbox-simnycbotiok): No description available. - [Reasons to use GraphQL | Top 5 Reasons Why and How to use GraphQL](/blog/top-5-reasons-to-use-graphql-b60cfa683511): No description available. - [Prisma Studio - A Visual Interface for Your Database](/blog/prisma-studio-3rtf78dg99fe): No description available. - [Advanced Database Schema Management with Atlas & Prisma ORM](/blog/advanced-database-schema-management-with-atlas-and-prisma-orm): Atlas is a powerful data modeling and migrations tool enabling advanced DB schema management workflows, like CI/CD, schema monitoring, versioning, and more. - [Improving Performance with Apollo Query Batching](/blog/improving-performance-with-apollo-query-batching-66455ea9d8b): No description available. - [Database Metrics with Prisma, Prometheus & Grafana](/blog/metrics-tutorial-prisma-pmoldgq10kz): This tutorial will help you to get started with Prisma's metrics feature. Learn how to integrate metrics into a web server using Prometheus and Grafana. - [Rust to TypeScript Update: Boosting Prisma ORM Performance](/blog/rust-to-typescript-update-boosting-prisma-orm-performance): A blog post showing how the new Query Compiler project, where the Prisma query engine is being re-written from Rust to TypeScript, is improving performance. - [Restructuring Prisma](/blog/restructure-announcement-1a9ek279du8j): Restructuring Prisma - [Backend with TypeScript PostgreSQL & Prisma: Data Modeling & CRUD](/blog/backend-prisma-typescript-orm-with-postgresql-data-modeling-tsjs1ps7kip1): No description available. - [Introducing global omit for model fields in Prisma ORM 5.16.0!](/blog/introducing-global-omit-for-model-fields-in-prisma-orm-5-16-0): Prisma ORM v5.16.0 allows you to omit fields globally or per-query. This blog post overviews the change and how to omit fields in your Prisma Client queries. - [Jamstack with Next.js and Prisma](/blog/jamstack-with-nextjs-prisma-jamstackN3XT): Learn how to build interactive Jamstack apps with Next.js and Prisma and incremental static re-generation. - [What's new in Prisma? (Q1/21)](/blog/whats-new-in-prisma-q1-2021-spjyqp0e2rk1): Learn about everything that has happened in the Prisma ecosystem and community from January to March 2021. - [What's new in Prisma? (Q4/22)](/blog/wnip-q4-2022-f66prwkjx72s): Here’s all you need to know about the Prisma ecosystem and community from August to December 2022. - [Data DX: The name for Prisma’s developer experience philosophy](/blog/datadx-name-for-prismas-philosophy): Explore the evolution of Data DX at Prisma, from its inception before naming to the launch of a new category. - [Build A Fullstack App with Remix, Prisma & MongoDB: Deployment](/blog/fullstack-remix-prisma-mongodb-5-gOhQsnfUPXSx): Learn how to build and deploy a fullstack application using Remix, Prisma, and MongoDB. In this article, we will be deploying the application we have built throughout this series. - [Building a REST API with NestJS and Prisma: Handling Relational Data](/blog/nestjs-prisma-relational-data-7D056s1kOabc): In this tutorial, you will learn how to handle relational data in a REST API built with NestJS, Prisma and PostgreSQL. You will create a new User model and learn how to model relations in the data layer and API layer. - [The Complete ORM for Node.js & TypeScript](/blog/prisma-the-complete-orm-inw24qjeawmb): After more than two years of development, we are excited to share that all Prisma tools are ready for production. - [The Ultimate Guide to Testing with Prisma: CI Pipelines](/blog/testing-series-5-xWogenROXm): Learn how to set up a CI pipeline to automatically run tests against your application that uses Prisma. - [End-To-End Type-Safety with GraphQL, Prisma & React: GraphQL API](/blog/e2e-type-safety-graphql-react-3-fbV2ZVIGWg): Learn how to build a fully type-safe application with GraphQL, Prisma, and React. This article walks you through building a type-safe GraphQL API - [Introducing Auto-Scaling for Prisma Accelerate’s Connection Pool](/blog/introducing-auto-scaling-for-prisma-accelerate): Prisma Accelerate’s new auto-scaling feature improves connection pooling, ensuring efficient and scalable database management. - [Saving Black Friday With Connection Pooling](/blog/saving-black-friday-with-connection-pooling): Ensure stability and performance during high traffic periods with Prisma Accelerate's connection pooling - [Database vs Application: Demystifying JOIN Strategies](/blog/database-vs-application-demystifying-join-strategies): Joining data from multiple tables is a complicated topic. There are two main strategies: database-level and application-level joins. Prisma ORM offers both options. In this article you’ll learn the tradeoffs between the two so you can pick the best strategy. - [Improving Prisma Migrate DX with two new commands](/blog/prisma-migrate-dx-primitives): Learn how the new Prisma Migrate commands, migrate diff and db execute help troubleshooting schema migrations. - [New Course: Fullstack App Using Next.js, GraphQL, TypeScript & Prisma](/blog/announcing-upcoming-course-8s41wdqrlgc7): We are working on a course, where you are going to learn how to build a fullstack app using Next.js, GraphQL, TypeScript and Prisma! - [Connections, Edges & Nodes in Relay](/blog/connections-edges-nodes-in-relay-758d358aa4c7): No description available. - [How Prisma helps Amplication evolutionize backend development](/blog/amplication-customer-story-nmlkBNlLlxnN): How Prisma helps Amplication evolutionize backend development - [How GreatFrontEnd Supercharged Development with Prisma ORM](/blog/how-greatfrontend-supercharged-development-with-prisma-orm): Discover how GreatFrontEnd revolutionized their database operations by integrating Prisma ORM—achieving type safety, streamlined schema management, and a more efficient development pipeline. - [How to wrap a REST API with GraphQL - A 3-step tutorial](/blog/how-to-wrap-a-rest-api-with-graphql-8bf3fb17547d): No description available. - [Announcing On-Demand Cache Invalidation for Prisma Accelerate](/blog/announcing-on-demand-cache-invalidation-for-prisma-accelerate): Boost app performance with precise control using Prisma's on-demand cache invalidation. # Prisma Documentation ## Docs - [Front matter](docs/about/docs-components/frontmatter): Meta information - [Prisma docs components](docs/about/docs-components/index): In this section - [MDX components](docs/about/docs-components/mdx-examples): This page describes how to use the custom MDX components (e.g. code blocks) in the Prisma docs. - [About](docs/about/index): This section of our docs is about... the docs! - [Boilerplate content](docs/about/style-guide/boilerplate-content): You can use the following phrases and blocks of content as templates when you work on the docs. - [Prisma docs image guidelines](docs/about/style-guide/image-guidelines): Screenshots - [Prisma docs style guide](docs/about/style-guide/index): This guide contains guidelines for contributors to the Prisma docs. Its goal is to ensure consistency throughout the Prisma docs and with other official Prisma materials. - [Prisma product and component names](docs/about/style-guide/prisma-product-names): Use the following forms - [Docs example data model](docs/about/style-guide/schema-models): User and Post are the canonical models that we use in our examples throughout the Prisma docs. - [Spelling, punctuation, and formatting](docs/about/style-guide/spelling-punctuation-formatting): Avoid contractions - [User interface (GUI) guidelines](docs/about/style-guide/user-interace-guidelines): Use numbered lists to document UI steps - [Word choice](docs/about/style-guide/word-choice): Avoid words like "easy" and "just" - [Writing style](docs/about/style-guide/writing-style): Audience - [Writing template](docs/about/template): A template for writing Prisma Docs. - [API Reference](docs/accelerate/api-reference): The Accelerate API reference documentation is based on the following schema: - [Caching](docs/accelerate/caching): Cache strategies - [Compare Accelerate](docs/accelerate/compare): Prisma Accelerate supports products that serve a global audience, with a global caching system and connection pool that spans multiple regions, providing consistent access to data with low latency no matter where your user (or your database) is located in the world. - [Connection Pooling](docs/accelerate/connection-pooling): To learn more about connection pooling generally, be sure to check out Prisma's Data Guide for a comprehensive overview on what connection pooling is, what it seeks to address, and how it works. - [Evaluating](docs/accelerate/evaluating): Prisma Accelerate optimizes database interactions through advanced connection pooling and global edge caching. Its connection pooler is available in 16 regions and helps applications load-balance and scale database requests based on demand. - [Prisma Accelerate examples](docs/accelerate/examples): Here is a list of ready-to-run example projects that demonstrate how to use Prisma Accelerate: - [FAQ](docs/accelerate/faq): When should I enable static IP for Prisma Accelerate? - [Feedback](docs/accelerate/feedback): You can submit any feedback about Accelerate in our Discord server. - [Getting started with Prisma Accelerate](docs/accelerate/getting-started): Prerequisites - [](docs/accelerate/index): Prisma Accelerate - [Known limitations](docs/accelerate/known-limitations): Below are descriptions of known limitations when using Accelerate. If you encounter any additional ones, please share them with us via Discord. - [Local development](docs/accelerate/local-development): Prisma Accelerate efficiently scales production traffic with integrated connection pooling and a global database cache. - [Static IP](docs/accelerate/static-ip): You can enable static IP for Accelerate when your security setup requires IP allowlisting or if you're implementing firewalls that only permit access from trusted IPs, ensuring controlled and secure database connections. - [Troubleshooting](docs/accelerate/troubleshoot): When working with Prisma Accelerate, you may encounter errors often highlighted by specific error codes during development and operations. It is important to understand the meaning of these errors, why they occur, and how to resolve them in order to ensure the smooth operation of your applications. This guide aims to provide insights and steps to troubleshoot specific error codes encountered with Prisma Accelerate. - [Get Started](docs/getting-started/index): Get started - [From the CLI](docs/getting-started/prisma-postgres/from-the-cli): This page provides a step-by-step guide for Prisma Postgres after setting it up with prisma init --db: - [Import from existing database](docs/getting-started/prisma-postgres/import-from-existing-database-mysql): This guide provides step-by-step instructions for importing data from an existing MySQL database into Prisma Postgres. - [Import from existing database](docs/getting-started/prisma-postgres/import-from-existing-database-postgresql): This guide provides step-by-step instructions for importing data from an existing PostgreSQL database into Prisma Postgres. - [Prisma Postgres](docs/getting-started/prisma-postgres/index): In this section - [Upgrade from Early Access](docs/getting-started/prisma-postgres/upgrade-from-early-access): This guide shows you how to migrate your Prisma Postgres Early Access (EA) database to the now official Prisma Postgres General Availability (GA) database. Prisma Postgres Early Access was introduced to allow early adopters to test Prisma’s new managed PostgreSQL service. As we move to GA, it's crucial to safely migrate data from your EA database to the new GA database. - [Quickstart](docs/getting-started/quickstart-prismaPostgres): In this Quickstart guide, you'll learn how to get started from scratch with Prisma ORM and a Prisma Postgres database in a plain TypeScript project. It covers the following workflows: - [Quickstart](docs/getting-started/quickstart-sqlite): In this Quickstart guide, you'll learn how to get started with Prisma ORM from scratch using a plain TypeScript project and a local SQLite database file. It covers data modeling, migrations and querying a database. - [Add to existing project](docs/getting-started/setup-prisma/add-to-existing-project/index): Include Prisma ORM in an existing project with the following documentation, which explains some core concepts as it guides you through integrating Prisma ORM into your workflow. - [MongoDB](docs/getting-started/setup-prisma/add-to-existing-project/mongodb-node-mongodb): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to Prisma CLI, Prisma Client, and Prisma Introspection. - [MongoDB](docs/getting-started/setup-prisma/add-to-existing-project/mongodb-typescript-mongodb): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to Prisma CLI, Prisma Client, and Prisma Introspection. - [Connect your database (MongoDB)](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/connect-your-database-node-mongodb): Connecting your database - [Connect your database (MongoDB)](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/connect-your-database-typescript-mongodb): Connecting your database - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/install-prisma-client-node-mongodb): Install and generate Prisma Client - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/install-prisma-client-typescript-mongodb): Install and generate Prisma Client - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/introspection-node-mongodb): Prisma ORM introspects a MongoDB schema by sampling the data stored in the given database and inferring the schema of that data. - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/introspection-typescript-mongodb): Prisma ORM introspects a MongoDB schema by sampling the data stored in the given database and inferring the schema of that data. - [Next steps](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/next-steps): This section lists a number of potential next steps you can now take from here. Feel free to explore these or read the Introduction page to get a high-level overview of Prisma ORM. - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/querying-the-database-node-mongodb): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/mongodb/querying-the-database-typescript-mongodb): Write your first query with Prisma Client - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-node-cockroachdb): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-node-mysql): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-node-planetscale): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-node-postgresql): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-node-sqlserver): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-typescript-cockroachdb): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-typescript-mysql): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-typescript-planetscale): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-typescript-postgresql): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Relational databases](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-typescript-sqlserver): Learn how to add Prisma ORM to an existing Node.js or TypeScript project by connecting it to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Introspection. - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-node-cockroachdb): Create an initial migration - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-node-mysql): Create an initial migration - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-node-postgresql): Create an initial migration - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-node-sqlserver): Create an initial migration - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-typescript-cockroachdb): Create an initial migration - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-typescript-mysql): Create an initial migration - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-typescript-postgresql): Create an initial migration - [Baseline your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/baseline-your-database-typescript-sqlserver): Create an initial migration - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-node-cockroachdb): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-node-mysql): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-node-planetscale): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-node-postgresql): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-node-sqlserver): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-typescript-cockroachdb): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-typescript-mysql): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-typescript-planetscale): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-typescript-postgresql): Connecting your database - [Connect your database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-typescript-sqlserver): Connecting your database - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-node-cockroachdb): Add a Tag model to your schema - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-node-mysql): Add a Tag model to your schema - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-node-postgresql): Add a Tag model to your schema - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-node-sqlserver): Add a Tag model to your schema - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-typescript-cockroachdb): Add a Tag model to your schema - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-typescript-mysql): Add a Tag model to your schema - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-typescript-postgresql): Add a Tag model to your schema - [Evolve your schema](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/evolve-your-schema-typescript-sqlserver): Add a Tag model to your schema - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-node-cockroachdb): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-node-mysql): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-node-planetscale): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-node-postgresql): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-node-sqlserver): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-typescript-cockroachdb): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-typescript-mysql): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-typescript-planetscale): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-typescript-postgresql): - [Install Prisma Client](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/install-prisma-client-typescript-sqlserver): - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-node-cockroachdb): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-node-mysql): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-node-planetscale): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-node-postgresql): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-node-sqlserver): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-typescript-cockroachdb): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-typescript-mysql): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-typescript-planetscale): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-typescript-postgresql): Introspect your database with Prisma ORM - [Introspection](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/introspection-typescript-sqlserver): Introspect your database with Prisma ORM - [Next steps](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/next-steps): This section lists a number of potential next steps you can now take from here. Feel free to explore these or read the Introduction page to get a high-level overview of Prisma ORM. - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-node-cockroachdb): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-node-mysql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-node-planetscale): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-node-postgresql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-node-sqlserver): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-typescript-cockroachdb): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-typescript-mysql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-typescript-planetscale): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-typescript-postgresql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/querying-the-database-typescript-sqlserver): Write your first query with Prisma Client - [Set up Prisma ORM](docs/getting-started/setup-prisma/index): Start from scratch or add Prisma ORM to an existing project. The following tutorials introduce you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Start from scratch](docs/getting-started/setup-prisma/start-from-scratch/index): Start a fresh project from scratch with the following tutorials as they introduce you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [MongoDB](docs/getting-started/setup-prisma/start-from-scratch/mongodb-node-mongodb): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your MongoDB database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI and Prisma Client. - [MongoDB](docs/getting-started/setup-prisma/start-from-scratch/mongodb-typescript-mongodb): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your MongoDB database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI and Prisma Client. - [Connect your database (MongoDB)](docs/getting-started/setup-prisma/start-from-scratch/mongodb/connect-your-database-node-mongodb): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database (MongoDB)](docs/getting-started/setup-prisma/start-from-scratch/mongodb/connect-your-database-typescript-mongodb): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Creating the Prisma schema](docs/getting-started/setup-prisma/start-from-scratch/mongodb/creating-the-prisma-schema-node-mongodb): Update the Prisma schema - [Creating the Prisma schema](docs/getting-started/setup-prisma/start-from-scratch/mongodb/creating-the-prisma-schema-typescript-mongodb): Update the Prisma schema - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/mongodb/install-prisma-client-node-mongodb): Install and generate Prisma Client - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/mongodb/install-prisma-client-typescript-mongodb): Install and generate Prisma Client - [Next steps](docs/getting-started/setup-prisma/start-from-scratch/mongodb/next-steps): This section lists a number of potential next steps you can now take from here. Feel free to explore these or read the Introduction page to get a high-level overview of Prisma ORM. - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/mongodb/querying-the-database-node-mongodb): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/mongodb/querying-the-database-typescript-mongodb): Write your first query with Prisma Client - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-node-cockroachdb): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-node-mysql): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-node-planetscale): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-node-postgresql): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-node-sqlserver): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-typescript-cockroachdb): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-typescript-mysql): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-typescript-planetscale): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-typescript-postgresql): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-typescript-prismaPostgres): Learn how to create a new TypeScript project with a Prisma Postgres database from scratch. This tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate and covers the following workflows: - [Relational databases](docs/getting-started/setup-prisma/start-from-scratch/relational-databases-typescript-sqlserver): Learn how to create a new Node.js or TypeScript project from scratch by connecting Prisma ORM to your database and generating a Prisma Client for database access. The following tutorial introduces you to the Prisma CLI, Prisma Client, and Prisma Migrate. - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-node-cockroachdb): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-node-mysql): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-node-planetscale): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-node-postgresql): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-node-sqlserver): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-typescript-cockroachdb): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-typescript-mysql): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-typescript-planetscale): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-typescript-postgresql): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-typescript-prismaPostgres): Set up a Prisma Postgres database in the PDP Console - [Connect your database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/connect-your-database-typescript-sqlserver): To connect your database, you need to set the url field of the datasource block in your Prisma schema to your database connection URL: - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-node-cockroachdb): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-node-mysql): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-node-planetscale): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-node-postgresql): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-node-sqlserver): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-typescript-cockroachdb): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-typescript-mysql): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-typescript-planetscale): - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-typescript-postgresql): These commands serve different purposes in managing your database schema with Prisma. Here’s a breakdown of when and why to use each: - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-typescript-prismaPostgres): Install the Prisma Accelerate extension - [Install Prisma Client](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/install-prisma-client-typescript-sqlserver): - [Next steps](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/next-steps): This section lists a number of potential next steps you can now take from here. Feel free to explore these or read the Introduction page to get a high-level overview of Prisma ORM. - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-node-cockroachdb): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-node-mysql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-node-planetscale): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-node-postgresql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-node-sqlserver): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-typescript-cockroachdb): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-typescript-mysql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-typescript-planetscale): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-typescript-postgresql): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-typescript-prismaPostgres): Write your first query with Prisma Client - [Querying the database](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/querying-the-database-typescript-sqlserver): Write your first query with Prisma Client - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-node-cockroachdb): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-node-mysql): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-node-planetscale): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-node-postgresql): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-node-sqlserver): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-typescript-cockroachdb): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-typescript-mysql): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-typescript-planetscale): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-typescript-postgresql): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-typescript-prismaPostgres): Creating the database schema - [Using Prisma Migrate](docs/getting-started/setup-prisma/start-from-scratch/relational-databases/using-prisma-migrate-typescript-sqlserver): Creating the database schema - [How to use Prisma ORM with Cloudflare D1](docs/guides/cloudflare-d1): Learn how to use Prisma ORM with Cloudflare D1 - [How to set up Datadog tracing with Prisma ORM](docs/guides/data-dog): Learn how to configure Datadog tracing for a Prisma ORM project. Capture spans for every query using the @prisma/instrumentation package, dd-trace, and view them in Datadog. - [Migrate data using the expand and contract pattern](docs/guides/data-migration): Learn how to perform data migrations using the expand and contract pattern with Prisma ORM - [How to use Prisma in Docker](docs/guides/docker): Learn step-by-step configure a Prisma ORM app in Docker - [How to manage schema changes in a team](docs/guides/implementing-schema-changes): Learn how to use Prisma Migrate effectively when collaborating on a project as a team - [Guides](docs/guides/index): Welcome to the Guides section! Here you'll find practical, step-by-step guides to help you accomplish specific tasks with Prisma products, including Prisma ORM, Prisma Accelerate, Prisma Postgres, and more. - [How to write guides for Prisma ORM](docs/guides/making-guides): Learn how to write clear, consistent, and helpful guides for Prisma ORM documentation - [How to migrate from Drizzle to Prisma ORM](docs/guides/migrate-from-drizzle): Learn how to migrate from Drizzle to Prisma ORM - [How to migrate from Mongoose to Prisma ORM](docs/guides/migrate-from-mongoose): Learn how to migrate from Mongoose to Prisma ORM - [How to migrate from Sequelize to Prisma ORM](docs/guides/migrate-from-sequelize): Learn how to migrate from Sequelize to Prisma ORM - [How to migrate from TypeORM to Prisma ORM](docs/guides/migrate-from-typeorm): Learn how to migrate from TypeORM to Prisma ORM - [How to use multiple databases in a single app](docs/guides/multiple-databases): Learn how to use multiple Prisma Clients in a single app to connect to multiple databases, handle migrations, and deploy your application to Vercel. - [How to use Prisma ORM with Next.js](docs/guides/nextjs): Learn how to use Prisma ORM in a Next.js app and deploy it to Vercel - [How to use Prisma ORM with Nuxt](docs/guides/nuxt): A step-by-step guide to setting up and using Prisma ORM and Prisma Postgres with the Prisma Nuxt module and deploying to Vercel. - [How to use Prisma ORM with React Router 7](docs/guides/react-router-7): Learn how to use Prisma ORM and Prisma Postgres in a React Router 7 app. - [How to use Prisma ORM with SolidStart](docs/guides/solid-start): Learn how to use Prisma ORM in a SolidStart app - [How to use Prisma ORM with SvelteKit](docs/guides/sveltekit): Learn how to use Prisma ORM in a SvelteKit app - [How to use Prisma ORM with TanStack Start](docs/guides/tanstack-start): Learn how to use Prisma ORM in a TanStack Start app - [How to use Prisma ORM with Turborepo](docs/guides/turborepo): Learn step-by-step how to integrate Prisma ORM with Turborepo to build modular, scalable monorepo architectures efficiently. - [How to use Prisma ORM in a pnpm workspaces monorepo](docs/guides/use-prisma-in-pnpm-workspaces): Learn step-by-step how to integrate Prisma ORM in a pnpm workspaces monorepo to build scalable and modular applications efficiently. - [FAQ](docs/optimize/faq): Does Optimize automatically implement optimizations? - [Getting Started](docs/optimize/getting-started): Prerequisites - [](docs/optimize/index): Prisma Optimize - [Known limitations](docs/optimize/known-limitations): Below are the known limitations when using Prisma Optimize. If you are aware of any limitations that are missing, please let us know on the #help-and-questions channel in our community Discord. - [Performance metrics](docs/optimize/performance-metrics): An Optimize recording session provides detailed insights into the latencies of executed queries, capturing key metrics such as average duration, 50th percentile, 99th percentile, and maximal query execution time. - [Prisma AI](docs/optimize/prisma-ai): Prisma AI enables you to ask follow-up questions on a provided recommendation for additional clarity. - [Using @db.Char(n)](docs/optimize/recommendations/avoid-char): Optimize provides recommendations to help you identify and resolve performance issues caused by the use of @db.Char(n) type in PostgreSQL. - [Using @db.Money](docs/optimize/recommendations/avoid-db-money): Optimize provides recommendations to help you identify and resolve performance issues caused by the use of @db.Money type. - [Using timestamp(0) or timestamptz(0)](docs/optimize/recommendations/avoid-timestamp-timestampz-0): Optimize provides recommendations to help you identify and resolve performance issues caused by the use of @db.Timestamp(0) and @db.Timestamptz(0) native types in PostgreSQL. - [Using @db.VarChar(n)](docs/optimize/recommendations/avoid-varchar): Optimize provides recommendations to help you identify and resolve performance issues caused by the use of @db.VarChar(n) type in PostgreSQL. - [Using CURRENT_TIME](docs/optimize/recommendations/current-time): The following raw SQL query uses the CURRENT_TIME function: - [Excessive number of rows returned](docs/optimize/recommendations/excessive-number-of-rows-returned): Optimize provides recommendations to help you identify and resolve performance issues caused by excessive number of rows returned from a query. - [Full table scans caused by LIKE operations](docs/optimize/recommendations/full-table-scans-caused-by-like-operations): Optimize provides recommendations to help you identify and resolve performance issues caused by full table scans from LIKE operations. - [Recommendations](docs/optimize/recommendations/index): Optimize provides recommendations focused on performance improvements such as indexing issues, excessive data retrieval, and inefficient query patterns. Recommendations include: - [Indexing on unique columns](docs/optimize/recommendations/indexing-on-unique-columns): Optimize identifies redundant indexing on unique columns and provides recommendations for better database performance. - [Long-running transactions](docs/optimize/recommendations/long-running-transactions): Optimize provides actionable recommendations to help you identify and resolve performance issues caused by long-running transactions. - [Queries on unindexed columns](docs/optimize/recommendations/queries-on-unindexed-columns): Optimize provides recommendations to help you identify and resolve performance issues caused by missing database indexes. - [Repeated query](docs/optimize/recommendations/repeated-query): Optimize provides recommendations to help you identify and resolve performance issues caused by repeated queries. - [Overfetching](docs/optimize/recommendations/select-returning): Optimize provides recommendations to help you identify and resolve performance issues caused by over-fetched data. - [Storing large objects or BLOBs in the database](docs/optimize/recommendations/storing-blob-in-database): Optimize provides recommendations to help identify and resolve performance issues caused by storing large objects in the database. It also suggests alternative approaches to mitigate these challenges. - [Unnecessary indexes](docs/optimize/recommendations/unnecessary-indexes): Optimize detects unnecessary indexes and recommends removing them to improve database performance. - [Recordings](docs/optimize/recordings): The recordings feature helps developers debug and isolate sets of queries into distinct sessions, known as recordings. This targeted approach enables precise performance analysis and optimization by preventing the mixing of queries from different applications or test rounds, leading to clearer insights and more effective debugging. - [Cursor](docs/orm/more/ai-tools/cursor): Cursor is an AI-powered code editor designed to boost productivity by automating repetitive coding tasks. When paired with Prisma, a robust and type-safe toolkit for database workflows, it becomes a powerful solution for managing and optimizing database schemas, queries, and data seeding. - [AI tools](docs/orm/more/ai-tools/index): In this section - [Tabnine](docs/orm/more/ai-tools/tabnine): Tabnine is a an AI software development platform that comes as an extension for your IDE (e.g. VS Code, WebStorm, IntelliJ, ...). - [Comparing Prisma ORM](docs/orm/more/comparisons/index): Find out how Prisma ORM compares to ORMs and ODMs in the Node.js and TypeScript ecosystem. - [Drizzle](docs/orm/more/comparisons/prisma-and-drizzle): Prisma and Drizzle take different approaches to working with databases. While Drizzle appeals to developers who prefer writing queries close to SQL, Prisma is designed to support teams building and maintaining production applications—where clarity, collaboration, and long-term maintainability matter. - [Mongoose](docs/orm/more/comparisons/prisma-and-mongoose): This page compares the Prisma ORM and Mongoose APIs. If you want to learn how to migrate from Mongoose to Prisma, check out this guide. - [Sequelize](docs/orm/more/comparisons/prisma-and-sequelize): This page compares the Prisma ORM and Sequelize APIs. - [TypeORM](docs/orm/more/comparisons/prisma-and-typeorm): This page compares Prisma ORM and TypeORM. If you want to learn how to migrate from TypeORM to Prisma ORM, check out this guide. - [Editor setup](docs/orm/more/development-environment/editor-setup): This page describes how you can configure your editor for an optimal developer experience when using Prisma ORM. - [Managing Prisma ORM environment variables and settings](docs/orm/more/development-environment/environment-variables): An environment variable is a key value pair of string data that is stored on your machine's local environment. Refer to our Environment variables reference documentation for specific details. - [Development environment](docs/orm/more/development-environment/index): This section describes using env variables, editors, and workspaces in your development environment. - [Autocompletion in GraphQL resolvers with JavaScript](docs/orm/more/help-and-troubleshooting/autocompletion-in-graphql-resolvers-with-js): Problem - [Data validation with CHECK constraints (PostgreSQL)](docs/orm/more/help-and-troubleshooting/check-constraints): Overview - [Compare columns of the same table with raw queries](docs/orm/more/help-and-troubleshooting/comparing-columns-through-raw-queries): Comparing different columns from the same table is a common scenario that developers encounter. Some examples include comparing two numeric values in the same table or comparing two dates in a same table. There's an existing GitHub Issue regarding the same. - [Converting Implicit many-to-many relation to Explicit many-to-many relation](docs/orm/more/help-and-troubleshooting/implicit-to-explicit-conversion): Problem - [Help articles](docs/orm/more/help-and-troubleshooting/index): This section provides a number of common problems that developers might encounter when using Prisma ORM and provides short, practical solutions to resolve them. - [Netlify build dependency caching workaround](docs/orm/more/help-and-troubleshooting/netlify-caching-issue): Problem - [Comprehensive Guide to Using Prisma ORM with Next.js](docs/orm/more/help-and-troubleshooting/nextjs-help): Learn best practices, monorepo strategies, and dynamic usage techniques for Prisma ORM in Next.js applications. - [Solve package error with vercel/pkg](docs/orm/more/help-and-troubleshooting/pkg-issue): Problem - [Using the Nuxt Prisma Module](docs/orm/more/help-and-troubleshooting/prisma-nuxt-module): The Nuxt Prisma module simplifies the integration of Prisma ORM into your Nuxt applications. - [Vercel build dependency caching workaround](docs/orm/more/help-and-troubleshooting/vercel-caching-issue): Problem - [Modeling and querying many-to-many relations](docs/orm/more/help-and-troubleshooting/working-with-many-to-many-relations): Problem - [More](docs/orm/more/index): In this section - [ORM releases and maturity levels](docs/orm/more/releases): This page explains the release process of Prisma ORM, how it's versioned and how to deal with breaking changes that might happen throughout releases. - [Engines](docs/orm/more/under-the-hood/engines): From a technical perspective, Prisma Client consists of three major components: - [Under the hood](docs/orm/more/under-the-hood/index): This page gives an overview of the Prisma ORM internals and how it works "under the hood". - [Upgrade guides](docs/orm/more/upgrade-guides/index): In this section - [How to upgrade](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/how-to-upgrade): Overview - [Upgrade from Prisma 1](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/index): In this section - [Schema incompatibilities](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/schema-incompatibilities-mysql): Overview - [Schema incompatibilities](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/schema-incompatibilities-postgresql): Overview - [Upgrade from MongoDB Beta](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/upgrade-from-mongodb-beta): Introduction - [REST API](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/upgrading-a-rest-api): Overview - [Old to new Nexus](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/upgrading-nexus-prisma-to-nexus): Overview - [prisma-binding to Nexus](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/upgrading-prisma-binding-to-nexus): Overview - [prisma-binding to SDL-first](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/upgrading-prisma-binding-to-sdl-first): Overview - [Upgrading the Prisma ORM layer](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/upgrading-the-prisma-layer-mysql): Overview - [Upgrading the Prisma ORM layer](docs/orm/more/upgrade-guides/upgrade-from-prisma-1/upgrading-the-prisma-layer-postgresql): Overview - [Upgrading to use Preview features](docs/orm/more/upgrade-guides/upgrading-to-use-preview-features): Preview features are new features that can only be used by opting in using a corresponding feature flag. - [Codemods](docs/orm/more/upgrade-guides/upgrading-versions/codemods): The @prisma/codemods package helps you to upgrade your codebase as Prisma ORM evolves. - [Upgrading versions](docs/orm/more/upgrade-guides/upgrading-versions/index): To upgrade to the latest version of Prisma ORM: - [Upgrade to Prisma ORM 3](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-3/index): Prisma ORM 3 introduces a number of breaking changes if you are upgrading from an earlier version (any 2.x version), therefore, it is important to understand how this upgrade might affect your application and make any needed adjustments to ensure a smooth transition. - [Named constraints upgrade path](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-3/named-constraints): After upgrading to Prisma ORM 3, the default naming convention for constraint and index names will change and your primary and foreign key names will now be part of the schema for databases that support them. Therefore the meaning of your existing Prisma schema will change. - [Referential actions upgrade path](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-3/referential-actions): Prisma ORM version 2.x prevents deletion of connected records in some Prisma Client functions, and does not let you configure referential actions in your Prisma Schema to change that behavior. - [Upgrade to Prisma ORM 4](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-4): Prisma ORM 4 introduces a number of breaking changes when you upgrade from an earlier Prisma ORM version. This guide explains how this upgrade might affect your application and gives instructions on how to handle any changes. - [Upgrade to Prisma ORM 5](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-5/index): Prisma ORM 5.0.0 introduces a number of changes, including the usage of our new JSON Protocol, which make Prisma Client faster by default. A full list of these changes can be found in our release notes. - [jsonProtocol changes](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-5/jsonprotocol-changes): As of Prisma ORM version 5.0.0, the new jsonProtocol is the default. There are some changes that directly result from this change and a few changes that are related to the new protocol. - [rejectOnNotFound changes](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-5/rejectonnotfound-changes): As of Prisma ORM version 5.0.0, the deprecated parameter rejectOnNotFound has been removed. Depending on if your project used rejectOnNotFound per query or globally, there will be be different ways of updating your code. - [Upgrade to Prisma ORM 6](docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6): Prisma ORM v6 introduces a number of breaking changes when you upgrade from an earlier Prisma ORM version. This guide explains how this upgrade might affect your application and gives instructions on how to handle any changes. - [ORM](docs/orm/orm-index): Prisma ORM is a Node.js and TypeScript ORM with an intuitive data model, automated migrations, type-safety, and auto-completion. - [Beyond Prisma ORM](docs/orm/overview/beyond-prisma-orm): Prisma ORM addresses many development needs, but Prisma's additional products like Prisma Postgres, Accelerate and Optimize can further enhance scalability and performance for your applications. - [Cloudflare D1](docs/orm/overview/databases/cloudflare-d1): This page discusses the concepts behind using Prisma ORM and Cloudflare D1, explains the commonalities and differences between Cloudflare D1 and other database providers, and leads you through the process for configuring your application to integrate with Cloudflare D1. - [CockroachDB](docs/orm/overview/databases/cockroachdb): This guide discusses the concepts behind using Prisma ORM and CockroachDB, explains the commonalities and differences between CockroachDB and other database providers, and leads you through the process for configuring your application to integrate with CockroachDB. - [Database drivers](docs/orm/overview/databases/database-drivers): Default built-in drivers - [Databases](docs/orm/overview/databases/index): Learn about the different databases Prisma ORM supports. - [MongoDB](docs/orm/overview/databases/mongodb): This guide discusses the concepts behind using Prisma ORM and MongoDB, explains the commonalities and differences between MongoDB and other database providers, and leads you through the process for configuring your application to integrate with MongoDB using Prisma ORM. - [MySQL/MariaDB](docs/orm/overview/databases/mysql): The MySQL data source connector connects Prisma ORM to a MySQL or MariaDB database server. - [Neon](docs/orm/overview/databases/neon): This guide explains how to: - [PlanetScale](docs/orm/overview/databases/planetscale): Prisma and PlanetScale together provide a development arena that optimizes rapid, type-safe development of data access applications, using Prisma's ORM and PlanetScale's highly scalable MySQL-based platform. - [PostgreSQL](docs/orm/overview/databases/postgresql): The PostgreSQL data source connector connects Prisma ORM to a PostgreSQL database server. - [Microsoft SQL Server](docs/orm/overview/databases/sql-server/index): The Microsoft SQL Server data source connector connects Prisma ORM to a Microsoft SQL Server database server. - [SQL Server on Docker](docs/orm/overview/databases/sql-server/sql-server-docker): To run a Microsoft SQL Server container image with Docker: - [SQL Server on Windows (local)](docs/orm/overview/databases/sql-server/sql-server-local): To run a Microsoft SQL Server locally on a Windows machine: - [SQLite](docs/orm/overview/databases/sqlite): The SQLite data source connector connects Prisma ORM to a SQLite database file. These files always have the file ending .db (e.g.: dev.db). - [Supabase](docs/orm/overview/databases/supabase): This guide discusses the concepts behind using Prisma ORM and Supabase, explains the commonalities and differences between Supabase and other database providers, and leads you through the process for configuring your application to integrate with Supabase. - [Turso](docs/orm/overview/databases/turso): This guide discusses the concepts behind using Prisma ORM and Turso, explains the commonalities and differences between Turso and other database providers, and leads you through the process for configuring your application to integrate with Turso. - [Overview](docs/orm/overview/index): In this section - [Data modeling](docs/orm/overview/introduction/data-modeling): What is data modeling? - [Introduction](docs/orm/overview/introduction/index): This page gives a high-level overview of what Prisma ORM is and how it works. - [Should you use Prisma ORM?](docs/orm/overview/introduction/should-you-use-prisma): Prisma ORM is a new kind of ORM that - like any other tool - comes with its own tradeoffs. This page explains when Prisma ORM would be a good fit, and provides alternatives for other scenarios. - [What is Prisma ORM?](docs/orm/overview/introduction/what-is-prisma): Prisma ORM is an open-source next-generation ORM. It consists of the following parts: - [Why Prisma ORM?](docs/orm/overview/introduction/why-prisma): On this page, you'll learn about the motivation for Prisma ORM and how it compares to other database tools like traditional ORMs and SQL query builders. - [Fullstack](docs/orm/overview/prisma-in-your-stack/fullstack): Fullstack frameworks, such as Next.js, Remix or SvelteKit, blur the lines between the server and the client. These frameworks also provide different patterns for fetching and mutating data on the server. - [GraphQL](docs/orm/overview/prisma-in-your-stack/graphql): GraphQL is a query language for APIs. It is often used as an alternative to RESTful APIs, but can also be used as an additional "gateway" layer on top of existing RESTful services. - [Prisma ORM in your stack](docs/orm/overview/prisma-in-your-stack/index): Prisma ORM provides a fully type-safe API and simplified database access. You can use Prisma ORM tools to build a GraphQL or REST API, or as part of a fullstack application - the extent to which you incorporate Prisma ORM is up to you. - [Is Prisma ORM an ORM?](docs/orm/overview/prisma-in-your-stack/is-prisma-an-orm): To answer the question briefly: Yes, Prisma ORM is a new kind of ORM that fundamentally differs from traditional ORMs and doesn't suffer from many of the problems commonly associated with these. - [REST](docs/orm/overview/prisma-in-your-stack/rest): When building REST APIs, Prisma Client can be used inside your route controllers to send databases queries. - [`client`: Add methods to Prisma Client](docs/orm/prisma-client/client-extensions/client): Prisma Client extensions are Generally Available from versions 4.16.0 and later. They were introduced in Preview in version 4.7.0. Make sure you enable the clientExtensions Preview feature flag if you are running on a version earlier than 4.16.0. - [Shared packages & examples](docs/orm/prisma-client/client-extensions/extension-examples): Extensions made by Prisma - [Extensions](docs/orm/prisma-client/client-extensions/index): Prisma Client extensions are Generally Available from versions 4.16.0 and later. They were introduced in Preview in version 4.7.0. Make sure you enable the clientExtensions Preview feature flag if you are running on a version earlier than 4.16.0. - [Middleware](docs/orm/prisma-client/client-extensions/middleware/index): Deprecated: Middleware is deprecated in version 4.16.0. - [Middleware sample: logging](docs/orm/prisma-client/client-extensions/middleware/logging-middleware): The following example logs the time taken for a Prisma Client query to run: - [Middleware sample: session data](docs/orm/prisma-client/client-extensions/middleware/session-data-middleware): The following example sets the language field of each Post to the context language (taken, for example, from session state): - [Middleware sample: soft delete](docs/orm/prisma-client/client-extensions/middleware/soft-delete-middleware): The following sample uses middleware to perform a soft delete. Soft delete means that a record is marked as deleted by changing a field like deleted to true rather than actually being removed from the database. Reasons to use a soft delete include: - [`model`: Add custom methods to your models](docs/orm/prisma-client/client-extensions/model): Prisma Client extensions are Generally Available from versions 4.16.0 and later. They were introduced in Preview in version 4.7.0. Make sure you enable the clientExtensions Preview feature flag if you are running on a version earlier than 4.16.0. - [`query`: Create custom Prisma Client queries](docs/orm/prisma-client/client-extensions/query): Prisma Client extensions are Generally Available from versions 4.16.0 and later. They were introduced in Preview in version 4.7.0. Make sure you enable the clientExtensions Preview feature flag if you are running on a version earlier than 4.16.0. - [`result`: Add custom fields and methods to query results](docs/orm/prisma-client/client-extensions/result): Prisma Client extensions are Generally Available from versions 4.16.0 and later. They were introduced in Preview in version 4.7.0. Make sure you enable the clientExtensions Preview feature flag if you are running on a version earlier than 4.16.0. - [Shared Prisma Client extensions](docs/orm/prisma-client/client-extensions/shared-extensions): You can share your Prisma Client extensions with other users, either as packages or as modules, and import extensions that other users create into your project. - [Type utilities](docs/orm/prisma-client/client-extensions/type-utilities): Several type utilities exist within Prisma Client that can assist in the creation of highly type-safe extensions. - [Debugging](docs/orm/prisma-client/debugging-and-troubleshooting/debugging): You can enable debugging output in Prisma Client and Prisma CLI via the DEBUG environment variable. It accepts two namespaces to print debugging output: - [Handling exceptions and errors](docs/orm/prisma-client/debugging-and-troubleshooting/handling-exceptions-and-errors): In order to handle different types of errors you can use instanceof to check what the error is and handle it accordingly. - [Debugging & troubleshooting](docs/orm/prisma-client/debugging-and-troubleshooting/index): Prisma Optimize helps you generate insights and provides recommendations that can help you make your database queries faster: - [Caveats when deploying to AWS platforms](docs/orm/prisma-client/deployment/caveats-when-deploying-to-aws-platforms): The following describes some caveats you might face when deploying to different AWS platforms. - [Deploying database changes with Prisma Migrate](docs/orm/prisma-client/deployment/deploy-database-changes-with-prisma-migrate): To apply pending migrations to staging, testing, or production environments, run the migrate deploy command as part of your CI/CD pipeline: - [Deploy migrations from a local environment](docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment): There are two scenarios where you might consider deploying migrations directly from a local environment to a production environment. - [Deploy Prisma ORM](docs/orm/prisma-client/deployment/deploy-prisma): Projects using Prisma Client can be deployed to many different cloud platforms. Given the variety of cloud platforms and different names, it's noteworthy to mention the different deployment paradigms, as they affect the way you deploy an application using Prisma Client. - [Deploy to a different OS](docs/orm/prisma-client/deployment/deploy-to-a-different-os): Prisma Client depends on the query engine that is running as a binary on the same host as your application. - [Deploy to Cloudflare Workers & Pages](docs/orm/prisma-client/deployment/edge/deploy-to-cloudflare): This page covers everything you need to know to deploy an app with Prisma ORM to a Cloudflare Worker or to Cloudflare Pages. - [Deploy to Deno Deploy](docs/orm/prisma-client/deployment/edge/deploy-to-deno-deploy): With this guide, you can learn how to build and deploy a simple application to Deno Deploy. The application uses Prisma ORM to save a log of each request to a Prisma Postgres database. - [Deploy to Vercel Edge Functions & Middleware](docs/orm/prisma-client/deployment/edge/deploy-to-vercel): This page covers everything you need to know to deploy an app that uses Prisma Client for talking to a database in Vercel Edge Middleware or a Vercel Function deployed to the Vercel Edge Runtime. - [Edge functions](docs/orm/prisma-client/deployment/edge/index): If your application is deployed via an "Edge Function" offering or is deployed from a serverless offering and has a non-standard runtime, it is a edge-deployed app. Common examples for such offerings include Cloudflare Workers or Pages, Vercel Edge Functions or Edge Middleware, and Deno Deploy. - [Deploying edge functions with Prisma ORM](docs/orm/prisma-client/deployment/edge/overview): You can deploy an application that uses Prisma ORM to the edge. Depending on which edge function provider and which database you use, there are different considerations and things to be aware of. - [Deployment](docs/orm/prisma-client/deployment/index): This section describes how to deploy Node.js applications that use Prisma Client and TypeScript to various platforms. - [Module bundlers](docs/orm/prisma-client/deployment/module-bundlers): Overview - [Deploy to AWS Lambda](docs/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda): This guide explains how to avoid common issues when deploying a project using Prisma ORM to AWS Lambda. - [Deploy to Azure Functions](docs/orm/prisma-client/deployment/serverless/deploy-to-azure-functions): This guide explains how to avoid common issues when deploying a Node.js-based function app to Azure using Azure Functions. - [Deploy to Netlify](docs/orm/prisma-client/deployment/serverless/deploy-to-netlify): This guide covers the steps you will need to take in order to deploy your application that uses Prisma ORM to Netlify. - [Deploy to Vercel](docs/orm/prisma-client/deployment/serverless/deploy-to-vercel): This guide takes you through the steps to set up and deploy a serverless application that uses Prisma to Vercel. - [Serverless functions](docs/orm/prisma-client/deployment/serverless/index): If your application is deployed via a "Serverless Function" or "Function-as-a-Service (FaaS)" offering and uses a standard Node.js runtime, it is a serverless app. Common deployment examples include AWS Lambda and Vercel Serverless Functions. - [Deploy to Fly.io](docs/orm/prisma-client/deployment/traditional/deploy-to-flyio): This guide explains how to deploy a Node.js server that uses Prisma ORM and PostgreSQL to Fly.io. - [Deploy to Heroku](docs/orm/prisma-client/deployment/traditional/deploy-to-heroku): In this guide, you will set up and deploy a Node.js server that uses Prisma ORM with PostgreSQL to Heroku. The application exposes a REST API and uses Prisma Client to handle fetching, creating, and deleting records from a database. - [Deploy to Koyeb](docs/orm/prisma-client/deployment/traditional/deploy-to-koyeb): In this guide, you will set up and deploy a Node.js server that uses Prisma ORM with PostgreSQL to Koyeb. The application exposes a REST API and uses Prisma Client to handle fetching, creating, and deleting records from a database. - [Deploy to Render](docs/orm/prisma-client/deployment/traditional/deploy-to-render): This guide explains how to deploy a Node.js server that uses Prisma ORM and PostgreSQL to Render. - [Traditional servers](docs/orm/prisma-client/deployment/traditional/index): If your application is deployed via a Platform-as-a-Service (PaaS) provider, whether containerized or not, it is a traditionally-deployed app. Common deployment examples include Heroku and Koyeb. - [Prisma Client](docs/orm/prisma-client/index): In this section - [Observability & logging](docs/orm/prisma-client/observability-and-logging/index): In this section - [Logging](docs/orm/prisma-client/observability-and-logging/logging): Use the PrismaClient log parameter to configure log levels , including warnings, errors, and information about the queries sent to the database. - [Metrics](docs/orm/prisma-client/observability-and-logging/metrics): Prisma Client metrics give you a detailed insight into how Prisma Client interacts with your database. You can use this insight to help diagnose performance issues with your application. - [OpenTelemetry tracing](docs/orm/prisma-client/observability-and-logging/opentelemetry-tracing): Tracing provides a detailed log of the activity that Prisma Client carries out, at an operation level, including the time taken to execute each query. It helps you analyze your application's performance and identify bottlenecks. Tracing is fully compliant with OpenTelemetry, so you can use it as part of your end-to-end application tracing system. - [Aggregation, grouping, and summarizing](docs/orm/prisma-client/queries/aggregation-grouping-summarizing): Prisma Client allows you to count records, aggregate number fields, and select distinct field values. - [Case sensitivity](docs/orm/prisma-client/queries/case-sensitivity): Case sensitivity affects filtering and sorting of data, and is determined by your database collation. Sorting and filtering data yields different results depending on your settings: - [Computed fields](docs/orm/prisma-client/queries/computed-fields): Computed fields allow you to derive a new field based on existing data. A common example is when you want to compute a full name. In your database, you may only store the first and last name, but you can define a function that computes a full name by combining the first and last name. Computed fields are read-only and stored in your application's memory, not in your database. - [CRUD](docs/orm/prisma-client/queries/crud): This page describes how to perform CRUD operations with your generated Prisma Client API. CRUD is an acronym that stands for: - [Custom models](docs/orm/prisma-client/queries/custom-models): As your application grows, you may find the need to group related logic together. We suggest either: - [Custom validation](docs/orm/prisma-client/queries/custom-validation): You can add runtime validation for your user input for Prisma Client queries in one of the following ways: - [Excluding fields](docs/orm/prisma-client/queries/excluding-fields): By default Prisma Client returns all fields from a model. You can use select to narrow the result set, but that can be unwieldy if you have a large model and you only want to exclude a small number of fields. - [Filtering and Sorting](docs/orm/prisma-client/queries/filtering-and-sorting): Prisma Client supports filtering with the where query option, and sorting with the orderBy query option. - [Full-text search](docs/orm/prisma-client/queries/full-text-search): Prisma Client supports full-text search for PostgreSQL databases in versions 2.30.0 and later, and MySQL databases in versions 3.8.0 and later. With full-text search (FTS) enabled, you can add search functionality to your application by searching for text within a database column. - [Queries](docs/orm/prisma-client/queries/index): In this section - [Pagination](docs/orm/prisma-client/queries/pagination): Prisma Client supports both offset pagination and cursor-based pagination. - [Query optimization](docs/orm/prisma-client/queries/query-optimization-performance): This guide shows how to identify and optimize query performance, debug performance issues, and address common challenges. - [Relation queries](docs/orm/prisma-client/queries/relation-queries): A key feature of Prisma Client is the ability to query relations between two or more models. Relation queries include: - [Select fields](docs/orm/prisma-client/queries/select-fields): Overview - [Transactions and batch queries](docs/orm/prisma-client/queries/transactions): A database transaction refers to a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. This section describes the ways in which the Prisma Client API supports transactions. - [Custom model and field names](docs/orm/prisma-client/setup-and-configuration/custom-model-and-field-names): The Prisma Client API is generated based on the models in your Prisma schema. Models are typically 1:1 mappings of your database tables. - [Database polyfills](docs/orm/prisma-client/setup-and-configuration/database-polyfills): Prisma Client provides features that are typically either not achievable with particular databases or require extensions. These features are referred to as polyfills. For all databases, this includes: - [Connection management](docs/orm/prisma-client/setup-and-configuration/databases-connections/connection-management): PrismaClient connects and disconnects from your data source using the following two methods: - [Connection pool](docs/orm/prisma-client/setup-and-configuration/databases-connections/connection-pool): The query engine manages a connection pool of database connections. The pool is created when Prisma Client opens the first connection to the database, which can happen in one of two ways: - [Database connections](docs/orm/prisma-client/setup-and-configuration/databases-connections/index): Databases can handle a limited number of concurrent connections. Each connection requires RAM, which means that simply increasing the database connection limit without scaling available resources: - [Configure Prisma Client with PgBouncer](docs/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer): An external connection pooler like PgBouncer holds a connection pool to the database, and proxies incoming client connections by sitting between Prisma Client and the database. This reduces the number of processes a database has to handle at any given time. - [Configuring error formatting](docs/orm/prisma-client/setup-and-configuration/error-formatting): By default, Prisma Client uses ANSI escape characters to pretty print the error stack and give recommendations on how to fix a problem. While this is very useful when using Prisma Client from the terminal, in contexts like a GraphQL API, you only want the minimal error without any additional formatting. - [Generating Prisma Client](docs/orm/prisma-client/setup-and-configuration/generating-prisma-client): Prisma Client is a generated database client that's tailored to your database schema. By default, Prisma Client is generated into the node_modules/.prisma/client folder, but we highly recommend you specify an output location. - [Setup & configuration](docs/orm/prisma-client/setup-and-configuration/index): This section describes how to set up, generate, configure, and instantiate PrismaClient , as well as when and how to actively manage connections. - [Instantiating Prisma Client](docs/orm/prisma-client/setup-and-configuration/instantiate-prisma-client): The following example demonstrates how to import and instantiate your generated client from the default path: - [Introduction](docs/orm/prisma-client/setup-and-configuration/introduction): Prisma Client is an auto-generated and type-safe query builder that's tailored to your data. The easiest way to get started with Prisma Client is by following the Quickstart. - [Read replicas](docs/orm/prisma-client/setup-and-configuration/read-replicas): Read replicas enable you to distribute workloads across database replicas for high-traffic workloads. The read replicas extension, @prisma/extension-read-replicas, adds support for read-only database replicas to Prisma Client. - [Composite types](docs/orm/prisma-client/special-fields-and-types/composite-types): Composite types are only available with MongoDB. - [Fields & types](docs/orm/prisma-client/special-fields-and-types/index): This section covers various special fields and types you can use with Prisma Client. - [Null and undefined](docs/orm/prisma-client/special-fields-and-types/null-and-undefined): In Prisma ORM, if undefined is passed as a value, it is not included in the generated query. This behavior can lead to unexpected results and data loss. In order to prevent this, we strongly recommend updating to version 5.20.0 or later to take advantage of the new strictUndefinedChecks Preview feature, described below. - [Working with compound IDs and unique constraints](docs/orm/prisma-client/special-fields-and-types/working-with-composite-ids-and-constraints): Composite IDs and compound unique constraints can be defined in your Prisma schema using the @@id and @@unique attributes. - [Working with Json fields](docs/orm/prisma-client/special-fields-and-types/working-with-json-fields): Use the Json Prisma ORM field type to read, write, and perform basic filtering on JSON types in the underlying database. In the following example, the User model has an optional Json field named extendedPetsData: - [Working with scalar lists](docs/orm/prisma-client/special-fields-and-types/working-with-scalar-lists-arrays): Scalar lists are represented by the [] modifier and are only available if the underlying database supports scalar lists. The following example has one scalar String list named pets: - [Testing](docs/orm/prisma-client/testing/index): This section describes how to approach testing an application that uses Prisma Client. - [Integration testing](docs/orm/prisma-client/testing/integration-testing): Integration tests focus on testing how separate parts of the program work together. In the context of applications using a database, integration tests usually require a database to be available and contain data that is convenient to the scenarios intended to be tested. - [Unit testing](docs/orm/prisma-client/testing/unit-testing): Unit testing aims to isolate a small portion (unit) of code and test it for logically predictable behaviors. It generally involves mocking objects or server responses to simulate real world behaviors. Some benefits to unit testing include: - [Type safety](docs/orm/prisma-client/type-safety/index): The generated code for Prisma Client contains several helpful types and utilities that you can use to make your application more type-safe. This page describes patterns for leveraging them. - [Operating against partial structures of your model types](docs/orm/prisma-client/type-safety/operating-against-partial-structures-of-model-types): When using Prisma Client, every model from your Prisma schema is translated into a dedicated TypeScript type. For example, assume you have the following User and Post models: - [How to use Prisma ORM's type system](docs/orm/prisma-client/type-safety/prisma-type-system): This guide introduces Prisma ORM's type system and explains how to introspect existing native types in your database, and how to use types when you apply schema changes to your database with Prisma Migrate or db push. - [Prisma validator](docs/orm/prisma-client/type-safety/prisma-validator): The Prisma.validator is a utility function that takes a generated type and returns a type-safe object which adheres to the generated types model fields. - [Write your own SQL](docs/orm/prisma-client/using-raw-sql/index): While the Prisma Client API aims to make all your database queries intuitive, type-safe, and convenient, there may still be situations where raw SQL is the best tool for the job. - [Raw queries](docs/orm/prisma-client/using-raw-sql/raw-queries): With Prisma ORM 5.19.0, we have released TypedSQL. TypedSQL is a new way to write SQL queries that are type-safe and even easier to add to your workflow. - [SafeQL & Prisma Client](docs/orm/prisma-client/using-raw-sql/safeql): Overview - [TypedSQL](docs/orm/prisma-client/using-raw-sql/typedsql): Getting started with TypedSQL - [Getting started with Prisma Migrate](docs/orm/prisma-migrate/getting-started): This page explains how to get started with migrating your schema in a development environment using Prisma Migrate. - [Prisma Migrate](docs/orm/prisma-migrate/index): In this section - [Understanding Prisma Migrate](docs/orm/prisma-migrate/understanding-prisma-migrate/index): In this section - [Legacy Prisma Migrate](docs/orm/prisma-migrate/understanding-prisma-migrate/legacy-migrate): Important! This page documents legacy Prisma Migrate (Experimental) available in version 2.12.0 and earlier. Prisma Migrate is available in version 2.13.0 and Generally Available in 2.19.0. - [Limitations and known issues](docs/orm/prisma-migrate/understanding-prisma-migrate/limitations-and-known-issues): The following limitations apply to Prisma Migrate. - [Mental model](docs/orm/prisma-migrate/understanding-prisma-migrate/mental-model): This guide provides a conceptual overview of database migrations using Prisma Migrate when working with relational databases. It covers: what database migrations are, their value, and what Prisma Migrate is and how you can evolve your database schema with Prisma Migrate in different environments. - [About migration histories](docs/orm/prisma-migrate/understanding-prisma-migrate/migration-histories): This page explains how Prisma ORM uses migration histories to track changes to your schema. - [Overview](docs/orm/prisma-migrate/understanding-prisma-migrate/overview): Does not apply for MongoDBInstead of migrate dev and related commands, use db push for MongoDB. - [About the shadow database](docs/orm/prisma-migrate/understanding-prisma-migrate/shadow-database): The shadow database is a second, temporary database that is created and deleted automatically\ each time you run prisma migrate dev and is primarily used to detect problems* such as schema drift or potential data loss of the generated migration. - [Baselining a database](docs/orm/prisma-migrate/workflows/baselining): Baselining is the process of initializing a migration history for a database that: - [Customizing migrations](docs/orm/prisma-migrate/workflows/customizing-migrations): This guide does not apply for MongoDB. - [Data migrations](docs/orm/prisma-migrate/workflows/data-migration): This guide has been moved to our new guides section. You can find the guide there. - [Development and production](docs/orm/prisma-migrate/workflows/development-and-production): This page explains how to use Prisma Migrate commands in development and production environments. - [Generating down migrations](docs/orm/prisma-migrate/workflows/generating-down-migrations): This guide describes how to generate a down migration SQL file that reverses a given migration file. - [Workflows](docs/orm/prisma-migrate/workflows/index): In this section - [Native database functions](docs/orm/prisma-migrate/workflows/native-database-functions): In PostgreSQL, some native database functions are part of optional extensions. For example, in PostgreSQL versions 12.13 and earlier the genrandomuuid() function is part of the pgcrypto extension. - [Native database types](docs/orm/prisma-migrate/workflows/native-database-types): Prisma Migrate translates the model defined in your Prisma schema into features in your database. - [Patching & hotfixing](docs/orm/prisma-migrate/workflows/patching-and-hotfixing): Patching or hotfixing a database involves making an often time critical change directly in production. For example, you might add an index directly to a production database to resolve an issue with a slow-running query. - [Prototyping your schema](docs/orm/prisma-migrate/workflows/prototyping-your-schema): The Prisma CLI has a dedicated command for prototyping schemas: db push - [Seeding](docs/orm/prisma-migrate/workflows/seeding): This guide describes how to seed your database using Prisma Client and Prisma ORM's integrated seeding functionality. Seeding allows you to consistently re-create the same data in your database and can be used to: - [Squashing migrations](docs/orm/prisma-migrate/workflows/squashing-migrations): This guide describes how to squash multiple migration files into a single migration. - [Team development](docs/orm/prisma-migrate/workflows/team-development): This guide has been moved to the guides section. You can find the guide there. - [Troubleshooting](docs/orm/prisma-migrate/workflows/troubleshooting): This guide describes how to resolve issues with Prisma Migrate in a development environment, which often involves resetting your database. For production-focused troubleshooting, see: - [Unsupported database features](docs/orm/prisma-migrate/workflows/unsupported-database-features): Prisma Migrate uses the Prisma schema to determine what features to create in the database. However, some database features cannot be represented in the Prisma schema , including but not limited to: - [Database mapping](docs/orm/prisma-schema/data-model/database-mapping): The Prisma schema includes mechanisms that allow you to define names of certain database objects. You can: - [Data model](docs/orm/prisma-schema/data-model/index): In this section - [Indexes](docs/orm/prisma-schema/data-model/indexes): Prisma ORM allows configuration of database indexes, unique constraints and primary key constraints. This is in General Availability in versions 4.0.0 and later. You can enable this with the extendedIndexes Preview feature in versions 3.5.0 and later. - [Models](docs/orm/prisma-schema/data-model/models): The data model definition part of the Prisma schema defines your application models (also called Prisma models). Models: - [How to use Prisma ORM with multiple database schemas](docs/orm/prisma-schema/data-model/multi-schema): Multiple database schema support is currently available with the PostgreSQL, CockroachDB, and SQL Server connectors. - [Relations](docs/orm/prisma-schema/data-model/relations/index): A relation is a connection between two models in the Prisma schema. For example, there is a one-to-many relation between User and Post because one user can have many blog posts. - [Many-to-many relations](docs/orm/prisma-schema/data-model/relations/many-to-many-relations): Many-to-many (m-n) relations refer to relations where zero or more records on one side of the relation can be connected to zero or more records on the other side. - [One-to-many relations](docs/orm/prisma-schema/data-model/relations/one-to-many-relations): This page introduces one-to-many relations and explains how to use them in your Prisma schema. - [One-to-one relations](docs/orm/prisma-schema/data-model/relations/one-to-one-relations): This page introduces one-to-one relations and explains how to use them in your Prisma schema. - [Referential actions](docs/orm/prisma-schema/data-model/relations/referential-actions/index): Referential actions determine what happens to a record when your application deletes or updates a related record. - [Special rules for referential actions in SQL Server and MongoDB](docs/orm/prisma-schema/data-model/relations/referential-actions/special-rules-for-referential-actions): Some databases have specific requirements that you should consider if you are using referential actions. - [Relation mode](docs/orm/prisma-schema/data-model/relations/relation-mode): In Prisma schema, relations between records are defined with the @relation attribute. For example, in the following schema there is a one-to-many relation between the User and Post models: - [Self-relations](docs/orm/prisma-schema/data-model/relations/self-relations): A relation field can also reference its own model, in this case the relation is called a self-relation. Self-relations can be of any cardinality, 1-1, 1-n and m-n. - [Troubleshooting relations](docs/orm/prisma-schema/data-model/relations/troubleshooting-relations): Modelling your schema can sometimes offer up some unexpected results. This section aims to cover the most prominent of those. - [Table inheritance](docs/orm/prisma-schema/data-model/table-inheritance): Overview - [Unsupported database features](docs/orm/prisma-schema/data-model/unsupported-database-features): Not all database functions and features of Prisma ORM's supported databases have a Prisma Schema Language equivalent. Refer to the database features matrix for a complete list of supported features. - [Views](docs/orm/prisma-schema/data-model/views): Support for views is currently a very early Preview feature. You can add a view to your Prisma schema with the view keyword or introspect the views in your database schema with db pull. You cannot yet apply views in your schema to your database with Prisma Migrate and db push unless the changes are added manually to your migration file using the --create-only flag. For updates on progress with this feature, follow our GitHub issue. - [Prisma schema](docs/orm/prisma-schema/index): In this section - [Introspection](docs/orm/prisma-schema/introspection): You can introspect your database using the Prisma CLI in order to generate the data model in your Prisma schema. The data model is needed to generate Prisma Client. - [Data sources](docs/orm/prisma-schema/overview/data-sources): A data source determines how Prisma ORM connects your database, and is represented by the datasource block in the Prisma schema. The following data source uses the postgresql provider and includes a connection URL: - [Generators](docs/orm/prisma-schema/overview/generators): A Prisma schema can have one or more generators, represented by the generator block: - [Overview](docs/orm/prisma-schema/overview/index): The Prisma Schema (or schema for short) is the main method of configuration for your Prisma ORM setup. It consists of the following parts: - [Schema location](docs/orm/prisma-schema/overview/location): The default name for the Prisma Schema is a single file schema.prisma in your prisma folder. When your schema is named like this, the Prisma CLI will detect it automatically. - [PostgreSQL extensions](docs/orm/prisma-schema/postgresql-extensions): This page introduces PostgreSQL extensions and describes how to represent extensions in your Prisma schema, how to introspect existing extensions in your database, and how to apply changes to your extensions to your database with Prisma Migrate. - [Connection URLs](docs/orm/reference/connection-urls): Prisma ORM needs a connection URL to be able to connect to your database, e.g. when sending queries with Prisma Client or when changing the database schema with Prisma Migrate. - [Database features matrix](docs/orm/reference/database-features): This page gives an overview of the features which are provided by the databases that Prisma ORM supports. Additionally, it explains how each of these features can be used in Prisma ORM with pointers to further documentation. - [Environment variables reference](docs/orm/reference/environment-variables-reference): This document describes different environment variables and their use cases. - [Error message reference](docs/orm/reference/error-reference): For more information about how to work with exceptions and error codes, see Handling exceptions and errors. - [Reference](docs/orm/reference/index): The reference section of the documentation is a collection of reference pages that describe the Prisma ORM APIs and database implementations. - [Prisma CLI Preview features](docs/orm/reference/preview-features/cli-preview-features): When we release a new Prisma CLI feature, it often starts in Preview so that you can test it and submit your feedback. After we improve the feature with your feedback and are satisfied with the internal test results, we promote the feature to general availability. - [Prisma Client & Prisma schema](docs/orm/reference/preview-features/client-preview-features): When we release a new Prisma Client or Prisma schema feature, it often starts in Preview so that you can test it and submit your feedback. After we improve the feature with your feedback and are satisfied with the internal test results, we promote the feature to general availability. - [Preview features](docs/orm/reference/preview-features/index): Some Prisma ORM features are released as Previews. Share your feedback on all Preview features on GitHub. For information about available preview features and how to enable them, see: - [Prisma CLI reference](docs/orm/reference/prisma-cli-reference): This document describes the Prisma CLI commands, arguments, and options. - [Prisma Client API reference](docs/orm/reference/prisma-client-reference): The Prisma Client API reference documentation is based on the following schema: - [Prisma Config reference](docs/orm/reference/prisma-config-reference): Overview - [Prisma schema reference](docs/orm/reference/prisma-schema-reference): datasource - [Supported databases](docs/orm/reference/supported-databases): Prisma ORM currently supports the following databases. - [System requirements](docs/orm/reference/system-requirements): This page provides an overview of the system requirements for Prisma ORM. - [Tools](docs/orm/tools/index): In this section - [Prisma CLI](docs/orm/tools/prisma-cli): The Prisma command line interface (CLI) is the primary way to interact with your Prisma project from the command line. It can initialize new project assets, generate Prisma Client, and analyze existing database structures through introspection to automatically create your application models. - [Prisma Studio](docs/orm/tools/prisma-studio): Prisma Studio is a visual editor for the data in your database. Note that Prisma Studio is not open source but you can still create issues in the prisma/studio repo. - [General](docs/platform/about): Overview - [Platform](docs/platform/index): Learn about the main concepts and workflows of the Prisma Data Platform. - [Maturity levels](docs/platform/maturity-levels): Prisma releases updates to Prisma Data Platform multiple times per week, as opposed to the Prisma ORM that we release on a set schedule every few weeks. This is why we consider the lifecycle and process for maturing features in Prisma Data Platform differently. - [About the Platform CLI](docs/platform/platform-cli/about): This guide demonstrates how to access the Prisma Data Platform using the Prisma CLI. Get started by ensuring you have the Prisma CLI installed, following our setup instructions. - [Commands](docs/platform/platform-cli/commands): This document describes the Prisma Data Platform's integrated Prisma CLI commands, arguments, and options. - [Platform CLI](docs/platform/platform-cli/index): In this section - [Support](docs/platform/support): Your feedback is invaluable, and we encourage you to share your experiences with us on Discord. - [Backups](docs/postgres/backups): Prisma Postgres takes full snapshots of your database every 24 hours to back up your data. - [Caching](docs/postgres/caching): Prisma Postgres comes with a built-in global cache (enabled by Prisma Accelerate) that helps you speed up your database queries. - [Connection pooling](docs/postgres/connection-pooling): Prisma Postgres includes built-in connection pooling, enabled by Prisma Accelerate. This reduces the number of direct database connections and helps manage concurrent requests efficiently. - [FAQ](docs/postgres/faq): Does query execution time affect pricing in Prisma Postgres? - [Getting started](docs/postgres/getting-started): The easiest ways to get started with Prisma Postgres is by following these guides: - [Prisma Postgres®](docs/postgres/index): In this section - [Firebase Studio](docs/postgres/integrations/idx): Overview - [Integrations](docs/postgres/integrations/index): Learn how to use Prisma Postgres via 3rd party integrations. - [Netlify](docs/postgres/integrations/netlify): Overview - [Vercel](docs/postgres/integrations/vercel): The Vercel Marketplace integration for Prisma Postgres connects your Vercel projects with Prisma Postgres instances. Once connected, the integration will automatically set the DATABASE_URL environment variable on your deployed Vercel app. - [Known limitations](docs/postgres/known-limitations): Here's a list of known limitations that Prisma Postgres currently has. - [MCP Server](docs/postgres/mcp-server): The Model-Context-Protocol (MCP) gives LLMs a way to call APIs and thus access external systems in a well-defined manner. Prisma's MCP server gives LLMs the ability to manage Prisma Postgres databases (e.g. spin up new database instances or run schema migrations). - [Overview](docs/postgres/overview): Prisma Postgres is a managed PostgreSQL database service that easily lets you create a new database, interact with it through Prisma ORM, and build applications that start small and cheap but can scale to millions of users. - [TCP tunnel](docs/postgres/tcp-tunnel): Prisma Postgres can be accessed securely via a TCP tunnel using the @prisma/ppg-tunnel package, an authentication proxy designed for local database workflows. This package establishes a secure connection to Prisma Postgres through a local TCP server, enabling secure access while automatically handling traffic routing and authentication. - [Tooling](docs/postgres/tooling): You can view and edit your data in Prisma Postgres using either Prisma Studio or 3rd party database editors. - [Troubleshooting](docs/postgres/troubleshooting): This guide helps resolve common issues when working with Prisma Postgres.