Overview
TypeORM has been around since 2016 and was heavily influenced by Hibernate, Doctrine and Entity Framework. You define entities as classes with decorators such as @Entity and @Column, then work either through repositories and the entity manager (Data Mapper) or through methods on the entity itself (Active Record). A QueryBuilder covers joins, pagination and raw SQL cases, and the CLI can generate migrations by diffing entities against the database.
For several years the project sat at 0.3.x with a slow release pace, and developers regularly asked whether it was abandoned. New maintainers took over at the end of 2024; InfoQ reports that in 2025 the team merged 575 pull requests and closed more than 2,300 issues. TypeORM 1.0 was released on 19 May 2026, removing long-deprecated APIs, and 1.1.0 followed on 13 July 2026.
TypeORM is the default ORM in many NestJS projects through the @nestjs/typeorm module. Upgrading from 0.3.x to 1.0 involves breaking changes; the project publishes an upgrade guide and codemods.
Pricing and plans
| Plan | Price | What you get |
|---|---|---|
| TypeORM | $0 | MIT licence |
What it does
- Active Record or Data Mapper
- Choose between entity methods (user.save()) or repositories and an entity manager.
- Decorator entities
- Entities, columns, relations, indices and inheritance declared with decorators, or with separate EntitySchema files.
- Generated migrations
- The CLI compares entities with the database and writes migration files with up and down methods.
- QueryBuilder
- Chainable builder for joins, subqueries, pagination with joins, locking and query caching.
- Many databases
- MySQL, MariaDB, Postgres, CockroachDB, SQLite, SQL Server, Oracle, SAP HANA, Google Spanner, sql.js and MongoDB.
- Listeners and subscribers
- Entity lifecycle hooks and subscribers for auditing or side effects.
Strengths and limitations
Strengths
- Broadest database support among JavaScript ORMs, including Oracle, SAP HANA and Spanner
- Familiar patterns for developers coming from Hibernate, Doctrine or Entity Framework
- Close integration with NestJS
- Actively maintained again, with a 1.0 release in 2026
Limitations
- Type safety is weaker than Prisma, Drizzle or Kysely: query results are typed as whole entities, not the columns you selected
- Relies on decorators and class metadata, which some bundlers and edge runtimes handle poorly
- 1.0 removed deprecated APIs, so upgrading from 0.3.x needs code changes
- Long history of open issues from the years of slow maintenance
Who it suits
Good for
- NestJS applications
- Teams used to class-based ORMs from Java, PHP or .NET
- Apps on Oracle, SQL Server or SAP HANA from Node.js
Look elsewhere if
- Edge runtimes and serverless functions where bundle size matters
- Developers who want result types that follow the exact columns selected
Pricing history
-
TypeORM reaches 1.0 after ten years
TypeORM 1.0.0 removed long-deprecated APIs and ended the 0.3.x era under maintainers who took over at the end of 2024; 1.1.0 followed on 13 July 2026. Source ↗
Alternatives to TypeORM
| Tool | From | Free option | Stages |
|---|---|---|---|
| Ent Code-generated Go entity framework | — | ||
| Entity Framework Core .NET ORM | — | ||
| Active Record (Rails) Active Record ORM for Ruby on Rails | — | ||
| Dapper .NET micro-ORM | — | ||
| jOOQ Type-safe SQL builder for the JVM | €12/mo | Free tier | |
| Doctrine ORM Data mapper ORM for PHP | — |
Questions
Is TypeORM still maintained?
Yes. New maintainers took over at the end of 2024, and TypeORM 1.0 shipped on 19 May 2026 with 1.1.0 following in July 2026.
Does TypeORM work with NestJS?
Yes, through the @nestjs/typeorm module, which is the most common way TypeORM is used.
Can TypeORM generate migrations?
Yes. The CLI diffs your entities against the database and writes a migration with up and down methods.
Which databases does TypeORM support?
MySQL, MariaDB, PostgreSQL, CockroachDB, SQLite, SQL Server, Oracle, SAP HANA, Google Spanner, sql.js and MongoDB.
Sources read for this page