Skip to content

MikroORM

MikroORM is a TypeScript ORM for Node.js based on the Data Mapper, Unit of Work and Identity Map patterns. It is open source under the MIT license and maintained by Martin Adámek. The docs list v7 as the current major version.

By Martin AdámekOpen sourceORM

Facts checked on against the sources listed at the end of this page.

Pricing
Open sourceFree plan: Yes: free and open source. Sponsorship is accepted through GitHub Sponsors.
Open source
YesMIT
GitHub stars
9,264
npm downloads a week
1.3Mup 15% on the week before
Latest release
v7.2.52 weeks ago
Releases in 90 days
5about 2 a month

A good fit for

  • Domain-driven designs that rely on a Unit of Work and an Identity Map
  • TypeScript projects on Node.js that want typed queries and populate hints
  • Teams that use PostgreSQL, MongoDB or SQLite and want one API across them
  • Apps on Cloudflare D1, Turso or PGlite that need a Node-based ORM with those drivers

Not a good fit for

  • Teams that want a generated client and schema file rather than entity classes
  • Developers who prefer a thin query layer to a change-tracking ORM
  • Non-Node runtimes, since the docs describe it as a TypeScript ORM for Node.js

MikroORM pricing

MikroORM is free and open source under the MIT license. The maintainer accepts sponsorship through GitHub Sponsors.

Prices in USD, checked on 9 October 2026. Current prices on github.com.

Main features

Unit of Work
Automatic change tracking with batched queries, flushed in an implicit transaction.
Identity Map
One instance per entity row within a context.
Migrations and schema tools
A schema generator for prototyping, migrations for versioning and an entity generator that reads an existing database.
Query builder
A metadata-aware query builder, plus integration with the Kysely query builder.
Entity definitions
Define entities with defineEntity, decorators or EntitySchema.
Filters and soft delete
Global and entity-level filters, including soft delete.
Events and seeding
Lifecycle hooks and seeding with entity factories.

About MikroORM

MikroORM tracks changes to loaded entities through a Unit of Work and batches the resulting queries when you call em.flush(), wrapping them in an implicit transaction. An Identity Map keeps one instance per row within a request context.

Each database has its own driver package, such as @mikro-orm/postgresql or @mikro-orm/mysql, installed next to @mikro-orm/core. Supported databases include PostgreSQL, MySQL, MariaDB, SQLite, MongoDB, MS SQL, libSQL, CockroachDB, Oracle, Turso, Cloudflare D1 and PGlite.

Made by
Martin Adámek
Free plan
Yes: free and open source. Sponsorship is accepted through GitHub Sponsors.
Available on
Node.js

Usage and activity

Weekly npm downloads of @mikro-orm/core, last 12 months.

0500k1M1.5MSepNovJanMarMayJulOct24 September 2025: 294,830 downloads a week1 October 2025: 324,864 downloads a week8 October 2025: 293,593 downloads a week15 October 2025: 315,207 downloads a week22 October 2025: 378,541 downloads a week29 October 2025: 332,617 downloads a week5 November 2025: 341,343 downloads a week12 November 2025: 336,261 downloads a week19 November 2025: 346,697 downloads a week26 November 2025: 334,317 downloads a week3 December 2025: 322,137 downloads a week10 December 2025: 366,948 downloads a week17 December 2025: 344,005 downloads a week24 December 2025: 271,019 downloads a week31 December 2025: 186,778 downloads a week7 January 2026: 253,148 downloads a week14 January 2026: 378,664 downloads a week21 January 2026: 370,996 downloads a week28 January 2026: 390,429 downloads a week4 February 2026: 384,824 downloads a week11 February 2026: 405,417 downloads a week18 February 2026: 363,709 downloads a week25 February 2026: 398,743 downloads a week4 March 2026: 444,273 downloads a week11 March 2026: 484,753 downloads a week18 March 2026: 466,119 downloads a week25 March 2026: 485,646 downloads a week1 April 2026: 516,216 downloads a week8 April 2026: 461,246 downloads a week15 April 2026: 550,047 downloads a week22 April 2026: 534,823 downloads a week29 April 2026: 624,406 downloads a week6 May 2026: 524,508 downloads a week13 May 2026: 659,308 downloads a week20 May 2026: 655,312 downloads a week27 May 2026: 629,400 downloads a week3 June 2026: 718,002 downloads a week10 June 2026: 810,513 downloads a week17 June 2026: 802,121 downloads a week24 June 2026: 795,615 downloads a week1 July 2026: 833,557 downloads a week8 July 2026: 726,425 downloads a week22 July 2026: 953,608 downloads a week29 July 2026: 873,898 downloads a week5 August 2026: 855,395 downloads a week12 August 2026: 949,005 downloads a week26 August 2026: 914,956 downloads a week2 September 2026: 943,039 downloads a week28 September 2026: 1,107,194 downloads a week5 October 2026: 1,275,115 downloads a week

Recent releases

MikroORM alternatives

All 6 alternatives to MikroORM, side by side

Questions about MikroORM

Is MikroORM open source?

Yes. The repository is under the MIT license.

Who maintains MikroORM?

The site and the repository credit Martin Adámek, with copyright from 2018 to the present.

Which databases does MikroORM support?

PostgreSQL, MySQL, MariaDB, SQLite, MongoDB, MS SQL, libSQL, CockroachDB, Oracle, Turso, Cloudflare D1 and PGlite, each through its own driver package.

How do I install MikroORM?

Install @mikro-orm/core and the driver for your database. The home page shows npm install @mikro-orm/postgresql for PostgreSQL.

Does MikroORM support migrations?

Yes. It has a migrations package, a schema generator for prototyping and an entity generator for existing databases.

Sources and links

Work on MikroORM? Claim this listing. Something wrong or out of date? Suggest a correction. Stats come from the public GitHub and npm APIs and update every day.

MikroORM: pricing, features and alternatives (2026) | ScratchDB