Mikro-orm: Who uses MikroORM in production?

Created on 8 Jan 2020  路  22Comments  路  Source: mikro-orm/mikro-orm

Hi there, I am currently evaluating a bunch of orm-a-like libraries for an upcoming project.

I have experience with sequelize and waterline. I found mikro-orm while trying to choose a new ORM for a company I work for. I noticed there are not a ton of stars or used by stats quite yet on this project, but after reading through the docs, I think it has great potential.

It deserves more traction and I am asking myself - why is mikro-orm not more popular? And who is actually using it in production?

I know it sounds stupid, but is there some who-uses-it listing I can show to an IT decision maker?

Nevertheless, you did an awesome job and built a great library!

P.S.-- I stole the outline of this comment from https://github.com/Vincit/objection.js/issues/1069.

discussion

Most helpful comment

@jeffbum You don't know me, but trust me, go with Mikro.

As @B4nan says, it is just a popularity contest. Mikro is pretty new, v3 is definitely new, but the code is excellent and Martin is totally wonderful to work with. This is by far the best ORM for JS/TS on the market. The rest do not even compare.

All 22 comments

Hello there and thanks! Unfortunately there is no list of users/companies, obviously I know about few people using it (starting with myself :]). Let's keep this open and pinned to the top, hopefully we will get some feedback here.

About the "low" popularity, I think I am the one to blame - I love programming, much more than writing (and if I do write, I usually write the docs instead of articles). There are very little articles about MikroORM and those that I wrote did not get much traction. Unfortunately I have very weak (and not very programming oriented) audience on social networks, so it is hard for me to promote it properly.

Regarding articles, I picked medium.com as the platform of choice, but I have seen pretty negative feedback in general to medium during last few months, so I am considering to go with dev.to as the main platform (reposting it to medium too). I do have simple blog now on the website as well, but there are no comments and reactions available, so I think dev.to will be better choice. Another problem I had was with Daily.JS, I had to ask multiple times to promote the article (share on their behalf) on their twitter account. Maybe another publisher would suite better.

I hope the v3 release will get more traction and things will start moving more rapidly. I spend last 2 weeks vacationing, but I'd like to finalize the release article soon and get it out finally.

Btw keep in mind that this project is still relatively young, I "went public" with it with v2 in 04/2019. And you know, it's _just another ORM_ in the JS world :]

@B4nan Thanks for replying! I have been researching ORM's for Node this past week, and am really intrigued with Mikro-orm. I'm presenting it as an option for my company.

@jeffbum You don't know me, but trust me, go with Mikro.

As @B4nan says, it is just a popularity contest. Mikro is pretty new, v3 is definitely new, but the code is excellent and Martin is totally wonderful to work with. This is by far the best ORM for JS/TS on the market. The rest do not even compare.

@lookfirst I appreciate the recommendation. At the moment, chose another direction, but I am quietly duplicating efforts in Mikro to be able to compare side-by-side with the other orm. Just in case I want to make a mid-game switch ;)

@jeffbum Interesting feedback for sure! Can we expand on that? Would be good to know your thoughts. Your thoughts are appreciated because I think it would help others make their decisions as well as help this project in marketing.

  1. What ORM did you end up with?
  2. What made you not choose Mikro as the primary?
  3. Are you sure you can make a comparison? For example, no other ORM will allow you to do UoW modifications so I'm wondering how you would handle that.

Maybe others have questions for you as well...

I am doing the same research for my project, and was considering prisma2, when I ran across Mikro-ORM in a medium article. Looks very very intriguing, so I guess I am going to dig more.

For me, one primary thing I deem absolutely necessary with working with sql databases, is strong transactional support. Just searching the respective repositories should give you a hint about which one to go with... Mikro ORM vs. Prisma2

I use this ORM in 3 apps and so far I must say, it is brilliant. The simple usage of MikroORM is really nice. I switched to this because TypeORM and Typegoose have really bad UX.

I use this FW as follows at this moment:

1) With Restify - Rock solid Production env - app is doing accounting stuff (wages!, it must be really stable, I have not found an issue)
2) With Nest.js - Production - IoT server for managing client subscriptions and writing them to the DB
3) With Nest.js - App is in RC - Gaming API
4) Electron - I am working on an Electron app that wraps VPN Cisco AnyConnect client to build nicer UI with features like automatic setting up proxy and more - this ORM should act like bridge for logging to HDD. I haven't progressed yet, but this is the target. Hopefully, I will crack it soon.

Martin

Kudos to @B4nan. Once I am in Prague, will pay you some nice and delicious pizza or burger.

We started using Mikro for our projects, and we plan to continue in the future. Great work, we are spreading the word !

I am using it in one project and a co-worker is using it in two more projects by my recommendation, all in a serverless environment.
Using mikro-orm has been very productive!

Hello! This is not a feature request, but rather feedback, since this issue seems to be seeking it.

I'm evaluating "light" ORMs for a big project and mikro-orm looks fantastic. The one likely blocker for me choosing it is the seeming inability to have multiple database connections (correct me if I'm wrong). For this project, we aim to expose the ability for subsystems/models to choose from one of several persistence layers, and as such need the ability to dictate which layer a model is backed by.

Typeorm supports this via:
@Entity({ database: "dbName" })

Unfortunately, no matter what ORM I choose I need to implement a custom driver for one of our stores, and the path to accomplishing that is not nearly as clear in Typeorm as it is in Mikro-orm, so I'm still at a cross-roads on my evaluation. I'd like to offer our contributors a consistent modeling language without having to be concerned with _all_ the details, but easier said than done.

Regardless, great work going on here! I will certainly be watching this project 馃憤

Why do you think it's not possible? You can have multiple ORM instances, and let it discover different entities:

const orm1 = await MikroORM.init({ entities: [EntityA], dbName: 'db1' });
const orm2 = await MikroORM.init({ entities: [EntityB], dbName: 'db2' });

You would have to create custom CLI script that would handle the distinction for you, but that is also very simple (just instantiate the ORM with right config based on some argument - everything from the CLI can be used programatically.

Oh, interesting - I was digging into the possibility of that, when I found this comment:

https://github.com/mikro-orm/mikro-orm/issues/77#issuecomment-513963245

Which seemed to imply there was some global state that would make multiple instances not a good idea. Perhaps this has changed; I'll look further! Thanks so much for the response.

The problem with that was reusing the entity definition, but if you will have dedicated entities for each connection, there is no problem.

Btw ORM's tests are using the same set of entities for mysql and postgres.

Fantastic - didn't mean to derail the thread; but with this news I look forward to reporting back on production usage after we POC this.

Hello, we are running MikroORM v3 in production for six month or so at our time tracker app. So far no issue at all. Compared to typeorm, used previously - it is just and ideal ORM, that really reduced complexity of our infra layer and let focus on domain logic.
Overall - every ORM, that i tried before in nodejs world wasn't that friendly as MikroORM is. High quality types and good library design. Just fell in love with it :)

If you are interested in checking out our app - here is main site link: https://workapp.ai/en/ and app link is: https://private.workapp.ai/auth/register/?lang=en
Free till the end of this year for up to 100 employees. :)

Switched from TypeORM and use it in 3 production projects already. Main reasons:

  • Much better support
  • Much better UX: design, approach and typing
  • Code is good enough to be supported on our side

Disadvantages:

  • Some features and better typings are still welcome
  • Still easy to catch a bug, but it is compensated with good support
  • Sometimes developers want something similar to MyBatis

In general time consumed with fighting bugs compensated with profit by clean code and absence of boilerplate.

One production project is in the middle of migration from TypeORM, the second one uses MikroORM since day 0.

In general MikroORM is much more thoughtful and predictable than TypeORM. Even junior developers got used it within a single day. I can really say that MikroORM saves time instead of eating it like many ORMs do.

There are some things that are missing comparable to TypeORM but I'm still unsure whether they are actually needed at all.

The support is awesome and this is the first ever library that I've backed with donations. Keep going, its awesome! Going to contribute with PRs as I dive into it little bit deeper.

There are some things that are missing comparable to TypeORM but I'm still unsure whether they are actually needed at all.

Like what?

There are some things that are missing comparable to TypeORM but I'm still unsure whether they are actually needed at all.

Like what?

For SQLite, the feature sets aren't even close:

  • JSON function support
  • attach Database
  • foreign key migrations
  • sql.js support (browser)
  • better-sqlite3 support

I suspect that for Web 3.0 (graphql etc) style applications Mikro will be a no brainer.

However, just look at TypeORM's test suite to truly appreciate the cumulative effort that goes into supporting such a featureset

Personally, i feel the maintainers of TypeORM are really underappreciated

Like what?

Native JSON support for filtering, sorting etc.

I'm considering using Mikro ORM in production at my company. Do you have an idea of the future of the project and the roadmap? We are trying to assess the risk of discontinuation of the project when it's an integral part of our stack. Cheers!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sptGabriel picture sptGabriel  路  4Comments

reramjiawan picture reramjiawan  路  5Comments

Langstra picture Langstra  路  4Comments

kgoncharov picture kgoncharov  路  3Comments

jsprw picture jsprw  路  6Comments