On this page
Overview
MikroORM is a Node.js ORM built around Data Mapper, Unit of Work, and Identity Map patterns. It tracks TypeScript entities and flushes changes across PostgreSQL, MySQL/MariaDB, SQLite/libSQL, SQL Server, and MongoDB drivers.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Track entity changes and flush them through a Unit of Work
Its Identity Map preserves object identity for a row while the Unit of Work groups changes for transactional persistence.
Sources: [1]
Best fit
Fits Node.js services centered on TypeScript domain models
Teams can define entities with decorators or schemas and use repositories, migrations, and population across supported database drivers.
Sources: [1]
Before adoption
Design request scope, loading, and migration operations explicitly
Fork EntityManager per request, control relation loading for large graphs, and review generated schema SQL before applying it.
Sources: [1]
Official sources
- [1]MikroORM v7.2.3 README(2026-10-04)
- [2]MikroORM v7.2.3 release(2026-10-04)
- [3]MikroORM v7.2.3 license(2026-10-04)
Supplemental curator note
Verify transaction boundaries, loading behavior, and generated migrations with SQLite first, then test driver-specific behavior against the production database.
Try it in 3 steps
- 1
Create an isolated project
Use Node.js 22.17 or newer and create a test package without changing an existing project.
mkdir mikro-demo && cd mikro-demo && npm init -y - 2
Install a version-matched SQLite driver
Pin core and driver to the same release.
npm install @mikro-orm/core@7.2.3 @mikro-orm/sqlite@7.2.3 - 3
Load the public initialization API
Verify the API import without creating a database.
node --input-type=module -e "import('@mikro-orm/sqlite').then(({ MikroORM }) => console.log(typeof MikroORM.init))"
Growth
Growth trends · Last 30 days
9,244 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 146
- Open PRs
- 5
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- identity-map
- datamapper
- orm
- nodejs
- typescript
- entities
- mongodb
- mysql
- typescript-orm
- sqlite
- sqlite3
- javascript
- Stars
- 9,244
- Forks
- 679
- Watchers
- 52
- Open issues
- 12
- Contributors
- 334
- Owner type
- Organization
- Primary language
- TypeScript
- License
- MIT
- Repository last updated
- Oct 2, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Playwright97,062 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Drive Chromium, Firefox, and WebKit through one API and test runner for E2E, scripting, and agent browser automation
TypeScript - date-fns36,650 Stars
2 shared tag(s) · 1 shared category(s) · Same language
format, compare, and calculate JavaScript dates with small pure functions
TypeScript - Cheerio30,517 Stars
2 shared tag(s) · 1 shared category(s) · Same language
parse, query, and rewrite HTML or XML with a lightweight jQuery-style selector API
TypeScript - Appium22,042 Stars
2 shared tag(s) · 1 shared category(s) · Same language
automate end-to-end tests for Android, iOS, and desktop apps through WebDriver-compatible APIs
TypeScript - Knip12,402 Stars
2 shared tag(s) · 1 shared category(s) · Same language
find unused files, dependencies, and exports across JavaScript and TypeScript projects
TypeScript - AdminJS8,994 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Add CRUD and business-action administration around existing Node.js models
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.