# Doctrine vs MikroORM

**Leader by vioscaleAI score:** MikroORM

| Attribute | Doctrine | MikroORM |
|---|---|---|
| **vioscaleAI score** | 62 (50% (medium)) | 69.2 (79% (high)) |
| activity.commits_last_30d | 29 | 100 |
| adoption.dependent_repos | 87,805 | 914 |
| adoption.github_stars | 10,165 | 9,251 |
| adoption.package_downloads_weekly | - | 943,729 |
| content.faq | `[{"answer":"Doctrine provides PHP developers with both high-level object-oriented database tools and low-level direct SQL access. The core includes an Object Relational Mapper for complex data modeling and a Database Abstraction Layer for flexible database interaction. It is indexed under ORM & Database Tools.","source":"https://www.doctrine-project.org/","question":"What is Doctrine?","confidence":0.6},{"answer":"Doctrine is open source, so it can be self-hosted and used at no licence cost. It is released under the MIT licence. Pricing changes often, so verify at source before relying on it.","source":"https://www.doctrine-project.org/","question":"Is Doctrine free to use?","confidence":0.6},{"answer":"Doctrine supports the web and a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://www.doctrine-project.org/","question":"What platforms does Doctrine support?","confidence":0.6},{"answer":"Yes. Doctrine can be deployed self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://www.doctrine-project.org/","question":"Can Doctrine be self-hosted?","confidence":0.6},{"answer":"We have confirmed 20 integrations for Doctrine, including Symfony, Drupal, Laravel, Laminas, API Platform, eZ Platform, Akeneo PIM and Pimcore, plus 12 more. This is what we could verify from public sources, so the vendor may support others we have not indexed.","source":"https://www.doctrine-project.org/","question":"What does Doctrine integrate with?","confidence":0.6},{"answer":"Yes. Doctrine is published under the MIT licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/doctrine/orm","question":"Is Doctrine open source?","confidence":0.95}]` | `[{"answer":"An object-relational mapping library for Node.js that uses proven patterns (Data Mapper, Unit of Work, Identity Map) to provide type-safe database access with minimal boilerplate. Supports multiple SQL and NoSQL databases with features including schema versioning, entity lifecycle hooks, and flexible data loading strategies. It is indexed under ORM & Database Tools.","source":"https://mikro-orm.io","question":"What is MikroORM?","confidence":0.6},{"answer":"MikroORM is open source, so it can be self-hosted and used at no licence cost. It is released under the MIT licence. Pricing changes often, so verify at source before relying on it.","source":"https://mikro-orm.io","question":"Is MikroORM free to use?","confidence":0.6},{"answer":"MikroORM supports a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://mikro-orm.io","question":"What platforms does MikroORM support?","confidence":0.6},{"answer":"Yes. MikroORM can be deployed cloud / SaaS and self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://mikro-orm.io","question":"Can MikroORM be self-hosted?","confidence":0.6},{"answer":"Yes. MikroORM is published under the MIT licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/mikro-orm/mikro-orm","question":"Is MikroORM open source?","confidence":0.99}]` |
| deployment.options | `{"self_hosted":true}` | `{"cloud":true,"self_hosted":true}` |
| description.long | PHP libraries for building database-driven applications with support for object-relational mapping and database abstraction. | An object-relational mapper that enables type-safe database interactions with support for multiple database systems including PostgreSQL, MySQL, SQLite, MongoDB, and MSSQL. |
| features.capabilities | `{"raw_sql":true,"multi_db":true,"languages":"PHP","relations":true,"migrations":true}` | `{"raw_sql":true,"multi_db":true,"languages":"TypeScript, JavaScript (Node.js)","relations":true,"migrations":true,"schema_first":true,"type_safe_queries":true}` |
| integrations.count | 20 | 10 |
| integrations.list | `[{"name":"Symfony"},{"name":"Drupal"},{"name":"Laravel"},{"name":"Laminas"},{"name":"API Platform"},{"name":"eZ Platform"},{"name":"Akeneo PIM"},{"name":"Pimcore"},{"name":"Sylius"},{"name":"Shopware"},{"name":"Contao"},{"name":"Oxid eShop"},{"name":"PrestaShop"},{"name":"TYPO3"},{"name":"Sonata Project"},{"name":"JMS Libraries"},{"name":"Go! AOP"},{"name":"KNP Labs"},{"name":"PHPUnit"},{"name":"phpbench"}]` | `[{"name":"Kysely"},{"name":"Shopify"},{"name":"Nest.js"},{"name":"Express"},{"name":"NextJS"},{"name":"Electron.js"},{"name":"Koa"},{"name":"Elysia.js"},{"name":"Inversify"},{"name":"Accounts.js"},{"name":"GraphQL"},{"name":"Bun"},{"name":"RealWorld"},{"name":"Nest"}]` |
| language.primary | PHP | TypeScript |
| license.spdx | MIT | MIT |
| market.availability | `{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | - |
| platform.support | `{"cli":true,"web":true}` | `{"cli":true}` |
| pricing | `{"type":"open_source","freeTier":true,"sourceUrl":"https://www.doctrine-project.org/","retrievedAt":"2026-08-14T08:35:07.074Z"}` | `{"type":"open_source","freeTier":true,"sourceUrl":"https://mikro-orm.io","retrievedAt":"2026-08-14T08:37:11.055Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | open_source |
| pricing.price_level | free | free |
| pricing.transparent | yes | yes |
| release.cadence_days | 6 | 4 |
| release.history | `[{"url":"https://github.com/doctrine/orm/releases/tag/3.7.5","date":"2026-10-09T18:16:59Z","type":"stable","version":"3.7.5"},{"url":"https://github.com/doctrine/orm/releases/tag/3.7.4","date":"2026-10-05T18:32:58Z","type":"stable","version":"3.7.4"},{"url":"https://github.com/doctrine/orm/releases/tag/3.7.3","date":"2026-10-01T18:28:05Z","type":"stable","version":"3.7.3"},{"url":"https://github.com/doctrine/orm/releases/tag/3.7.2","date":"2026-09-23T05:28:49Z","type":"stable","version":"3.7.2"},{"url":"https://github.com/doctrine/orm/releases/tag/3.7.1","date":"2026-09-14T05:47:07Z","type":"stable","version":"3.7.1"},{"url":"https://github.com/doctrine/orm/releases/tag/3.7.0","date":"2026-09-07T19:36:54Z","type":"stable","version":"3.7.0"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.9","date":"2026-09-07T19:00:27Z","type":"stable","version":"3.6.9"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.8","date":"2026-08-05T19:06:31Z","type":"stable","version":"3.6.8"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.7","date":"2026-05-25T16:53:47Z","type":"stable","version":"3.6.7"},{"url":"https://github.com/doctrine/orm/releases/tag/2.20.13","date":"2026-05-25T16:47:26Z","type":"stable","version":"2.20.13"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.6","date":"2026-05-21T06:09:26Z","type":"stable","version":"3.6.6"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.5","date":"2026-05-11T06:48:56Z","type":"stable","version":"3.6.5"},{"url":"https://github.com/doctrine/orm/releases/tag/2.20.12","date":"2026-05-08T11:19:50Z","type":"stable","version":"2.20.12"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.4","date":"2026-05-07T20:22:28Z","type":"stable","version":"3.6.4"},{"url":"https://github.com/doctrine/orm/releases/tag/2.20.11","date":"2026-05-07T20:18:17Z","type":"stable","version":"2.20.11"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.3","date":"2026-04-02T06:54:32Z","type":"stable","version":"3.6.3"},{"url":"https://github.com/doctrine/orm/releases/tag/2.20.10","date":"2026-04-02T06:20:37Z","type":"stable","version":"2.20.10"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.2","date":"2026-01-30T21:43:07Z","type":"stable","version":"3.6.2"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.1","date":"2026-01-09T06:44:11Z","type":"stable","version":"3.6.1"},{"url":"https://github.com/doctrine/orm/releases/tag/3.6.0","date":"2025-12-19T20:41:15Z","type":"stable","version":"3.6.0"}]` | `[{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.2.5","date":"2026-10-09T12:30:43Z","type":"stable","version":"v7.2.5"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.2.4","date":"2026-10-06T15:17:36Z","type":"stable","version":"v7.2.4"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v6.6.17","date":"2026-10-02T11:48:27Z","type":"stable","version":"v6.6.17"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.2.3","date":"2026-09-30T12:38:10Z","type":"stable","version":"v7.2.3"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.2.2","date":"2026-09-28T07:32:52Z","type":"stable","version":"v7.2.2"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.2.1","date":"2026-09-19T10:20:19Z","type":"stable","version":"v7.2.1"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.2.0","date":"2026-09-07T07:06:07Z","type":"stable","version":"v7.2.0"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.15","date":"2026-09-03T08:10:30Z","type":"stable","version":"v7.1.15"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.14","date":"2026-08-26T18:52:12Z","type":"stable","version":"v7.1.14"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.13","date":"2026-08-20T13:23:52Z","type":"stable","version":"v7.1.13"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.12","date":"2026-08-17T11:22:27Z","type":"stable","version":"v7.1.12"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.11","date":"2026-08-06T10:31:32Z","type":"stable","version":"v7.1.11"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.10","date":"2026-08-04T09:53:13Z","type":"stable","version":"v7.1.10"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.9","date":"2026-07-30T19:49:55Z","type":"stable","version":"v7.1.9"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.8","date":"2026-07-28T15:16:42Z","type":"stable","version":"v7.1.8"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.7","date":"2026-07-17T14:00:21Z","type":"stable","version":"v7.1.7"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v6.6.16","date":"2026-07-17T13:55:34Z","type":"stable","version":"v6.6.16"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.6","date":"2026-07-13T13:17:56Z","type":"stable","version":"v7.1.6"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v7.1.5","date":"2026-06-26T14:48:34Z","type":"stable","version":"v7.1.5"},{"url":"https://github.com/mikro-orm/mikro-orm/releases/tag/v6.6.15","date":"2026-06-17T08:40:22Z","type":"stable","version":"v6.6.15"}]` |
| security.scorecard | 6.9 | 6.6 |
| security.vulnerabilities | `{"count":3,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=packagist&package_name=doctrine%2Form&per_page=100","last_12m":0,"max_severity":"CRITICAL"}` | `{"count":2,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=%40mikro-orm%2Fcore&per_page=100","last_12m":2,"max_severity":"CRITICAL"}` |

## Capabilities (ORM & Database Tools)

| Capability | Doctrine | MikroORM |
|---|:--:|:--:|
| **Core** |  |  |
| Type-safe queries | - | ✓ |
| Schema migrations | ✓ | ✓ |
| Relations / joins API | ✓ | ✓ |
| Languages | PHP | TypeScript, JavaScript (Node.js) |
| **Modelling** |  |  |
| Schema-first modelling | - | ✓ |
| **Flexibility** |  |  |
| Raw SQL escape hatch | ✓ | ✓ |
| **Portability** |  |  |
| Multiple database backends | ✓ | ✓ |
| **Ops** |  |  |
| Connection pooling | - | - |
| **DX** |  |  |
| Data browser / studio | - | - |

*Source: vioscaleAI. Generated 2026-10-16T19:18:44.673Z. "-" = undocumented, not absent.*
