{"id":42376,"library":"adonis-mikro-orm","title":"adonis-mikro-orm","description":"AdonisJS provider integrating Mikro-ORM, an actively maintained TypeScript ORM with Identity Map, Unit of Work, and automatic schema migration. Current stable version 1.0.21. Release cadence is moderate. Key differentiator: seamless integration with AdonisJS 5, providing DI, config via env/ace, and lifecycle hooks. Supports MySQL, PostgreSQL, SQLite, MongoDB through Mikro-ORM drivers. TypeScript-first with full type safety.","status":"active","version":"1.0.21","language":"javascript","source_language":"en","source_url":"https://github.com/genu/adonis-mikro-orm","tags":["javascript","typescript"],"install":[{"cmd":"npm install adonis-mikro-orm","lang":"bash","label":"npm"},{"cmd":"yarn add adonis-mikro-orm","lang":"bash","label":"yarn"},{"cmd":"pnpm add adonis-mikro-orm","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: AdonisJS core framework required for provider registration and DI.","package":"@adonisjs/core","optional":false}],"imports":[{"note":"Named import from /providers subpath; default export not available.","wrong":"import MikroOrmProvider from 'adonis-mikro-orm/providers'","symbol":"MikroOrmProvider","correct":"import { MikroOrmProvider } from 'adonis-mikro-orm/providers'"},{"note":"Decorator exported from /decorators subpath; avoid top-level import.","wrong":"import { MikroOrmConfig } from 'adonis-mikro-orm'","symbol":"MikroOrmConfig","correct":"import { MikroOrmConfig } from 'adonis-mikro-orm/decorators'"},{"note":"EM is the EntityManager instance; injected via Adonis IoC container. Do not import directly in service files.","symbol":"EM","correct":"import { inject } from '@adonisjs/fold'; import EM from 'adonis-mikro-orm/entity-manager';"}],"quickstart":{"code":"// Install: npm i adonis-mikro-orm\n// Configure:\n// node ace configure adonis-mikro-orm\n// Then register provider in .adonisrc.json:\n// {\n//   \"providers\": [\"adonis-mikro-orm/providers\"]\n// }\n// Create a model:\nimport { Entity, PrimaryKey, Property } from '@mikro-orm/core';\nimport { MikroOrmRepository } from 'adonis-mikro-orm/repositories';\n\n@Entity()\nexport class User {\n  @PrimaryKey()\n  id!: number;\n\n  @Property()\n  name!: string;\n\n  @Property()\n  email!: string;\n}\n\n// Use in service:\nimport { inject } from '@adonisjs/fold';\nimport EM from 'adonis-mikro-orm/entity-manager';\n\n@inject()\nexport class UserService {\n  constructor(protected em: typeof EM) {}\n\n  public async create(name: string, email: string) {\n    const user = this.em.create(User, { name, email });\n    await this.em.persistAndFlush(user);\n    return user;\n  }\n}","lang":"typescript","description":"Shows installation, configuration, model definition with Mikro-ORM decorators, and usage with EntityManager injection in AdonisJS 5 service."},"warnings":[{"fix":"Update import to 'adonis-mikro-orm/providers' and adjust configuration files accordingly.","message":"Breaking: v1.0.0 changed provider export path from 'adonis-mikro-orm' to 'adonis-mikro-orm/providers'.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Use import { Entity, PrimaryKey, Property } from '@mikro-orm/core'.","message":"Mikro-ORM entity decorators must be imported from '@mikro-orm/core', not from 'adonis-mikro-orm'.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Inject EM symbol from 'adonis-mikro-orm/entity-manager' using @inject decorator.","message":"Deprecated: Using EntityManager directly via 'em' from IoC container is deprecated in favor of type-safe injection with the EM symbol.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Use Mikro-ORM CLI directly: npx mikro-orm migration:create","message":"Migrations must be configured via Mikro-ORM config files; adonis-mikro-orm does not provide an Ace migration command.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set MIKRO_ORM_HOST, MIKRO_ORM_PORT, etc. in .env.","message":"Environment variables for database connection (e.g., DB_HOST, DB_PORT) must be prefixed with MIKRO_ORM_ in .env file to be picked up correctly.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.21':29 '5':40 'activ':12 'adoni':2 'adonis-mikro-orm':1 'adonisj':5,39 'automat':23 'cadenc':31 'config':43 'current':26 'di':42 'differenti':35 'driver':58 'env/ace':45 'first':61 'full':63 'hook':48 'ident':17 'integr':7,37 'javascript':66 'key':34 'lifecycl':47 'maintain':13 'map':18 'migrat':25 'mikro':3,9,56 'mikro-orm':8,55 'moder':33 'mongodb':53 'mysql':50 'orm':4,10,15,57 'postgresql':51 'provid':6,41 'releas':30 'safeti':65 'schema':24 'seamless':36 'sqlite':52 'stabl':27 'support':49 'type':64 'typescript':14,60,67 'typescript-first':59 'unit':19 'version':28 'via':44 'work':21","created_at":"2026-06-05T16:54:42.025347+00:00","updated_at":"2026-06-05T16:54:42.025347+00:00","problems":[{"fix":"Run: npm i adonis-mikro-orm; check import path is 'adonis-mikro-orm/providers' (not 'adonis-mikro-orm').","cause":"Forget to install the package or wrong import path.","error":"Cannot find module 'adonis-mikro-orm/providers' or its corresponding type declarations."},{"fix":"Ensure provider is registered in .adonisrc.json and service uses @inject() decorator with EM symbol.","cause":"EntityManager not properly injected or not available.","error":"TypeError: Cannot read properties of undefined (reading 'create')"},{"fix":"In mikro-orm.config.ts, add entities: ['./app/Models/*.js'] or import manually.","cause":"Entities are not registered in Mikro-ORM configuration.","error":"Entity 'User' not found, maybe it's not added to the ORM config?"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/genu/adonis-mikro-orm","github":"https://github.com/genu/adonis-mikro-orm","docs":null,"changelog":null,"pypi":null,"npm":"adonis-mikro-orm","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}