prisma/prisma

Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 13 minutes ago
Added to GitGenius on July 11th, 2024
Created on June 20th, 2019
Open Issues & Pull Requests: 2,537 (+0)
Number of forks: 2,524
Total Stargazers: 47,576 (+0)
Total Subscribers: 334 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 163.3 days
Mean response time: 440.5 days
90th percentile: 1258.6 days
Tracked items: 4,041

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "bug/0-unknown" is answered fastest, typically in about 5 days, while "kind/feature" waits about 27 months. 72% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 2% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2,459
New in 7 days: 6
Closed in 7 days: 3
Avg open age: 1,075 days
Stale 30+ days: 2,344
Stale 90+ days: 2,249

Recent activity

Opened in 7 days: 6
Closed in 7 days: 3
Comments in 7 days: 8
Events in 7 days: 14

Top labels

  • kind/bug (6,635)
  • bug/2-confirmed (2,304)
  • kind/feature (2,115)
  • bug/1-unconfirmed (2,050)
  • bug/0-unknown (1,439)
  • tech/typescript (1,121)
  • tech/engines (952)
  • topic: mongodb (528)

Detailed Description

Prisma is a next-generation object-relational mapping tool designed for Node.js and TypeScript applications. The repository contains the core implementation of Prisma ORM, which provides type-safe database access across multiple database systems including PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB, and CockroachDB. The project is written in TypeScript and serves as the foundation for building database-driven applications with full type safety.

The Prisma toolkit consists of three main components. Prisma Client is an auto-generated and type-safe query builder that can be used in any Node.js or TypeScript backend application, including serverless applications and microservices. It supports integration with REST APIs, GraphQL APIs, gRPC APIs, and other backend architectures. Prisma Migrate provides a declarative data modeling and migration system that allows developers to define their database schema and manage schema changes over time. Prisma Studio offers a graphical user interface for viewing and editing data directly in the database.

The core workflow in Prisma centers on the Prisma schema file, where developers define their application models in an intuitive data modeling language. The schema specifies the data source (database type), generators (such as Prisma Client), and the data model itself. Developers can either generate the data model by introspecting an existing database or manually write the model and map it to the database using Prisma Migrate. Once the schema is defined, Prisma Client is generated and provides full type-safe CRUD operations and more advanced queries for the defined models.

According to GitGenius activity tracking, the repository shows significant ongoing development and community engagement.

The repository's classification spans multiple technical domains including introspection, type-safe queries, multi-database support, data validation, schema modeling, migration management, performance optimization, and security.

Prisma supports configuration through a prisma.config.ts file that manages database connection details and CLI subcommands. The tool provides flexibility in how developers interact with their databases, whether through manual schema definition or automatic introspection of existing databases. The generated Prisma Client returns plain JavaScript objects from all queries while maintaining full type safety in TypeScript environments, allowing developers to catch property access errors and typos at compile time rather than runtime.