TypeORM VS Prisma

Compare TypeORM vs Prisma and see what are their differences.

TypeORM

ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms. (by typeorm)

Prisma

Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB (by prisma)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
TypeORM Prisma
156 444
33,307 37,241
0.6% 0.9%
9.0 9.9
3 days ago 7 days ago
TypeScript TypeScript
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

TypeORM

Posts with mentions or reviews of TypeORM. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-19.
  • NodeJS Security Best Practices
    11 projects | dev.to | 19 Feb 2024
    If you use Sequalize, TypeORM or for MongoDB, we have Mongoose these types of ORM tools, then you are safe by default because these help us against the SQL query injection attacks by default.
  • [DDD] Tactical Design Patterns Part 3: Presentation/Infrastructure Layer
    4 projects | dev.to | 16 Jan 2024
    We decided to use MySQL for a database. and TypeOrm for ORM. The ER diagram is provided below. For example, the task_assignments table holds information about user assignments to tasks. While in DDD, there is a pattern to design denormalized tables that reflect the structure of domain objects more directly, but this time, a more conventional table design was chosen. TypeOrm models:
  • Optimizing SQL Queries by 23x!!!
    1 project | dev.to | 15 Jan 2024
  • SQLSync – Stop Building Databases
    7 projects | news.ycombinator.com | 1 Dec 2023
    How does this compare to using directly an ORM lib that supports browser like TypeORM [0] via SQL.js [1]?

    [0] https://typeorm.io/

  • Deno Cron
    15 projects | news.ycombinator.com | 29 Nov 2023
    * Patch a third-party library that was setting an HTTP header to `null`. NodeJS handles this case just fine, but Deno throws an error [2].

    After all of that work, I finally was able to use Deno in my project. It was really cool! Unfortunately, both VS Code and IntelliJ with Deno are essentially unusable [3]. Or, at least, unacceptably slow compared to what I had with NodeJS.

    [0]: https://stackoverflow.com/a/66073607

    [1]: https://github.com/typeorm/typeorm/issues/6123#issuecomment-...

    [2]: https://github.com/Sansossio/twisted/issues/97

    [3]: https://github.com/denoland/vscode_deno/issues/895

  • TypeORM - remove children with orphanedRowAction
    3 projects | dev.to | 6 Nov 2023
    TypeORM is a very convenient ORM for JS apps. We use it with NestJS and running it on NodeJS.
  • Authentication part 3 using NestJS and Postgres database neon.tech
    4 projects | dev.to | 25 Oct 2023
    We are going to start using TypeORM as an ORM to help us interact with Postgres, but we also have an example of using Prisma in the future and everything that we have to adapt to switch the ORMs if necessary. At the end we are implementing neon.tech as a production database, right? 😉
  • From Good to Great: Scaling Applications with TypeORM Optimization
    4 projects | dev.to | 16 Oct 2023
    TypeORM is a popular Object-Relational Mapping (ORM) library for Node.js. It provides a high-level abstraction over relational databases, making it easy to perform CRUD (Create, Read, Update, Delete) operations.
  • Top 6 ORMs for Modern Node.js App Development
    7 projects | dev.to | 11 Oct 2023
    TypeORM places its focus on TypeScript and JavaScript (ES7+) development. It offers compatibility with various database systems, including MySQL, PostgreSQL, SQLite, and MongoDB. What sets TypeORM apart is its robust integration with TypeScript. It provides a user-friendly experience with a convenient decorator-based syntax for defining entities and relationships. Additionally, TypeORM supports the repository pattern and enables eager loading, enhancing its versatility for developers.
  • Deep Dive into Google Cloud SQL Connector for Node.js
    4 projects | dev.to | 9 Oct 2023
    ᴬ typeorm officially supports mssql@v9, but the support for the custom stream builder was added in mssql@v10. Since mssql is a peer dependency of typeorm, you can force override it and use the Cloud SQL Connector with typeorm. There is an open PR to add support for mssql@v10 in typeorm.

Prisma

Posts with mentions or reviews of Prisma. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-29.
  • A Software Engineer's Tips and Tricks #1: Drizzle
    3 projects | dev.to | 29 Apr 2024
    In the world of software development, there are two kinds of developers: those who have never had to complain about ORMs and those who have actually used them. Whether it’s Django ORM for Python, Active Record for Ruby, GORM for Golang, Doctrine for PHP, or Prisma for TypeScript, a common issue persists: writing simple queries is straightforward, but constructing complex or optimized queries can take hours, if not days.
  • Stories Behind ZenStack V2!
    3 projects | dev.to | 29 Apr 2024
    Support for a Union type #2505
  • Deploy Full-Stack Next.js T3App with Cognito and Prisma using AWS Lambda
    4 projects | dev.to | 15 Apr 2024
    generator client { provider = "prisma-client-js" binaryTargets = ["native", "rhel-openssl-1.0.x"] } datasource db { provider = "postgresql" // NOTE: When using mysql or sqlserver, uncomment the @db.Text annotations in model Account below // Further reading: // https://next-auth.js.org/adapters/prisma#create-the-prisma-schema // https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#string url = env("DATABASE_URL") } model Post { id Int @id @default(autoincrement()) name String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt createdBy User @relation(fields: [createdById], references: [id]) createdById String @@index([name]) } // ... rest of the schema
  • End-To-End Polymorphism: From Database to UI, Achieving SOLID Design
    2 projects | dev.to | 28 Mar 2024
    Unfortunately Prisma hasn’t supported polymorphism yet. As such, you can't use inheritance to model the entity in the same way as in your programming language, as depicted in the above class diagram. The good news is that we could intimate it using table inheritance to imitate it.
  • Next.js App Router Course
    1 project | dev.to | 28 Mar 2024
    In this project I am manually declaring the data types. For better type-safety, use Prisma, which automatically generates types based on your database schema.
  • Next.js 14: Fetching Data
    1 project | dev.to | 22 Mar 2024
    When you're creating a full-stack application, you'll also need to write logic to interact with your database. For relational databases like Postgres, you can do this with SQL, or an ORM like Prisma.
  • Utilizando Testcontainers para Testes de Integração com NestJS e Prisma ORM
    4 projects | dev.to | 16 Mar 2024
  • Building an Admin Console With Minimum Code Using React-Admin, Prisma, and Zenstack
    5 projects | dev.to | 11 Mar 2024
    Prisma is a modern TypeScript-first ORM that allows you to manage database schemas easily, make queries and mutations with great flexibility, and ensure excellent type safety.
  • How to add Passkey Login to Next.js using NextAuth and Hanko
    5 projects | dev.to | 4 Mar 2024
    Prisma
  • Taming cross-service database transactions in NestJS with AsyncLocalStorage
    2 projects | dev.to | 21 Feb 2024
    There have been multiple feature requests to add native support for AsyncLocalStorage to Prisma, but they haven't been met with much enthusiasm from the maintainers. Some people solved it by extending and overriding the client (which is arguably prone to breaking with updates).

What are some alternatives?

When comparing TypeORM and Prisma you can also consider the following projects:

Sequelize - Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB (v6), DB2 and DB2 for IBM i.

Knex - A query builder for PostgreSQL, MySQL, CockroachDB, SQL Server, SQLite3 and Oracle, designed to be flexible, portable, and fun to use.

Mongoose - MongoDB object modeling designed to work in an asynchronous environment.

Objection.js - An SQL-friendly ORM for Node.js

MikroORM - TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases.

Entity Framework - EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.

lucid - AdonisJS SQL ORM. Supports PostgreSQL, MySQL, MSSQL, Redshift, SQLite and many more