Skip to content
whichdevtool?
Categories ▾

Frameworks and UI

Frontend and full-stack frameworks Backend frameworks UI component libraries

Hosting

VPS and cloud servers App hosting and PaaS

Data

Managed databases File and object storage ORMs and database toolkits

AI

AI model APIs

Email

Transactional email APIs Email marketing and newsletters

Payments

Payments and billing

Domains and edge

Domain registrars CDN, DNS and edge security

Operations and identity

Monitoring, uptime and error tracking Auth and identity Background jobs, queues and workflows
Stacks Directory
Ctrl K

Search directory
Menu
StacksDirectory Pricing changes Glossary
VPS and cloud servers App hosting and PaaS Managed databases Transactional email APIs Email marketing and newsletters Domain registrars CDN, DNS and edge security Monitoring, uptime and error tracking Auth and identity Frontend and full-stack frameworks Backend frameworks UI component libraries AI model APIs File and object storage Payments and billing Background jobs, queues and workflows ORMs and database toolkits
  1. Home
  2. ORMs and database toolkits
  3. MikroORM
MO

Unit-of-work TypeScript ORM · by MikroORM (Martin Adámek)

MikroORM

TypeScript ORM built on Data Mapper, Unit of Work and Identity Map patterns, with change tracking, SQL and MongoDB drivers, and a dependency-free core since version 7.

Visit mikro-orm.io ↗ Alternatives Open source Open source Self-hostable
mikro-orm.io
MikroORM homepage
§1

Overview

MikroORM has been developed since 2018, mostly by Martin Adámek, and is heavily inspired by Doctrine and Hibernate. Instead of saving each object yourself, you load entities through an EntityManager, change them, and call em.flush(): the unit of work computes the changes and writes them in one implicit transaction, and the identity map makes sure each row is loaded once per request.

Entities can be defined with defineEntity (full type inference, the recommended style), decorators or EntitySchema. The schema generator, migrations with up and down, an entity generator for existing databases, seeders and global filters (useful for multi-tenancy and soft deletes) are all included.

Version 7, released on 11 March 2026 after a year and a half of work, removed Knex and every runtime dependency from the core, switched to native ESM and made the ORM usable outside Node.js. Kysely is now the query runner, and em.getKysely() returns a Kysely instance typed from your entities. Minor releases 7.1 and 7.2 followed, the latter adding PostgreSQL row level security managed from entity metadata.

§2

Pricing and plans

Plan Price What you get
MikroORM $0 MIT licence

Free and open source under the MIT licence; there is no paid product.

Source: github.com/mikro-orm/mikro-orm · prices as published, excluding tax.

§3

What it does

Unit of Work and Identity Map
Changes to managed entities are batched and flushed in one transaction; each row maps to one object per context.
Typed queries and populate hints
Filters, relation names and populate hints are checked at compile time.
Filters
Global and entity-level filters applied automatically, for soft deletes and multi-tenancy.
Schema tools
SchemaGenerator for prototyping, migrations for versioning and EntityGenerator for introspecting databases.
Kysely integration
Get a Kysely instance typed from your entities for hand-written SQL-style queries.
SQL and MongoDB
Drivers for PostgreSQL, MySQL, MariaDB, SQLite, libSQL/Turso, SQL Server, Oracle, MongoDB and PGlite.
§4

Strengths and limitations

Strengths

  • True unit-of-work change tracking, rare in the JavaScript ecosystem
  • Zero-dependency core since version 7, better for serverless cold starts
  • Strong type checking of filters and populate hints
  • Very active maintenance with frequent releases

Limitations

  • Largely maintained by one lead developer
  • Unit of Work and Identity Map need a request-scoped context (RequestContext or em.fork), which adds concepts to learn
  • Version 7 was a breaking upgrade: Knex removed, @mikro-orm/knex renamed to @mikro-orm/sql and automatic .env loading dropped
  • Smaller community and fewer tutorials than Prisma or TypeORM
§5

Who it suits

Good for

  • Domain-driven backends with complex object graphs
  • Developers coming from Hibernate or Doctrine
  • Multi-tenant apps that need automatic filters

Look elsewhere if

  • Simple CRUD apps where a query builder is enough
  • Teams that prefer writing SQL directly
§6

Pricing history

  • 11 Mar 2026

    MikroORM 7 drops Knex and all core dependencies

    MikroORM 7.0.0 replaced Knex with its own query building on Kysely, has zero core dependencies, native ESM and no hard Node.js coupling; @mikro-orm/knex became @mikro-orm/sql. Source ↗

§7

Alternatives to MikroORM

Tool From Free option Stages
Sequelize Promise-based Node.js ORM
— Open source
SQLAlchemy Python SQL toolkit and ORM
— Open source
Prisma ORM Schema-first TypeScript ORM
$10/mo Free tier
En
Ent Code-generated Go entity framework
— Open source
KJ
Knex.js JavaScript SQL query builder
— Open source
Bu
Bun (Go ORM) SQL-first Go ORM
— Open source

All ORMs and database toolkits →

§8

Questions

What is the difference between MikroORM and TypeORM?

MikroORM uses a Unit of Work with change tracking and em.flush(), while TypeORM saves entities explicitly; MikroORM also has stricter compile-time checks on queries.

Does MikroORM still use Knex?

No. Version 7 replaced Knex with its own query building and uses Kysely as the query runner.

Does MikroORM support MongoDB?

Yes, alongside PostgreSQL, MySQL, MariaDB, SQLite, libSQL, SQL Server and Oracle.

Does MikroORM generate migrations?

Yes. The migrations package diffs entity metadata against the database and writes up and down migrations.

Sources read for this page

  • https://mikro-orm.io/
  • https://github.com/mikro-orm/mikro-orm
  • https://mikro-orm.io/blog/mikro-orm-7-released
  • https://github.com/mikro-orm/mikro-orm/releases/tag/v7.0.0
  • https://mikro-orm.io/blog
Spec sheet
From
Open source
Free tier
Free to self-host
Stages
HobbyIndieStartupScale-upEnterprise Suits indie, startup, scale-up
Language
TypeScript / JavaScript
Approach
Full ORM (Data Mapper, Unit of Work)
Databases
Postgres, MySQL, MariaDB, SQLite, MSSQL, Oracle, MongoDB
Migrations
Yes, generated from entity metadata; up and down
Open source
Yes
Self-host
Yes
EU data
Not stated
Category
ORMs
Visit mikro-orm.io ↗

To report an out-of-date price or limit, use the correction form.

whichdevtool?

Developer and cloud tools compared on price, free tier and limits, each with its source. For side projects, solo developers and small teams.

Categories

  • VPS and cloud servers
  • App hosting and PaaS
  • Managed databases
  • Transactional email APIs
  • Email marketing and newsletters
  • Domain registrars
  • CDN, DNS and edge security
  • Monitoring, uptime and error tracking
  • Auth and identity
  • Frontend and full-stack frameworks
  • Backend frameworks
  • UI component libraries
  • AI model APIs
  • File and object storage
  • Payments and billing
  • Background jobs, queues and workflows
  • ORMs and database toolkits

Research

  • Directory
  • Stacks by project
  • Developer news
  • Pricing changes
  • Glossary

Site

  • About and methods
  • How we make money
  • Suggest a tool or fix
  • Privacy
© 2026 whichdevtool.com Prices change. Each tool page links to its source. We may earn a commission when you sign up through links on this site. How we make money