Replies: 33 comments 104 replies
-
To me, one of the many selling points of MikroORM is the excellent typing without the need of code generation. You don't have to add extra steps when deploying your application or onboarding new developers into your project. It just works. In my opinion, that would worsen the developer experience for a little improvement type-wise. |
Beta Was this translation helpful? Give feedback.
-
|
Exciting! One feature suggestion I have is supporting cursor based pagination out of the box |
Beta Was this translation helpful? Give feedback.
-
|
I would really like to see a migration file generator combined with a more complex entity generator. I've even tried to write some PoC IMO it could save a lot of dev time |
Beta Was this translation helpful? Give feedback.
-
|
For me polymorphic relationships are something quite interesting, maybe an approach like laravel eloquent. |
Beta Was this translation helpful? Give feedback.
-
|
How about trigger/function support in migrations? A function could just be a raw query as a string inside of a class with a name and inputs, or something like that. Triggers could be additional decorators you add to I don't think any run-time behaviour would be needed, just metadata tracking for migration revisions. |
Beta Was this translation helpful? Give feedback.
-
|
See #3567 (comment) for context.
I would prefer to own the constructor. Perhaps call the necessary setters during metadata initialization. Edit: This is how I'm faking it today |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
I would like to see an EntityAssigner being able of assigning nested structures reflecting model relationships. I am working on a R&D type project where often complex objects (several levels deep) of input data are sent through GQL mutations API in a single request and atomically stored as a structure of entities in RDBS. As a POC, we managed to modify current EntityAssigner, by adding lazy loading of entities potentially affected by the input structure (that required a change of its synchronous behavior into asynchronous). This solution has been developed as manually handling those input structures in would be cumbersome – especially knowing, that their shape is identical to the data model. At first glance, this seems to work, but probably not all pitfalls have been analyzed by us. |
Beta Was this translation helpful? Give feedback.
-
|
We can port many features from doctrine and elquoent orm. Some of the ones i like to see are
|
Beta Was this translation helpful? Give feedback.
-
|
I understand it's already possible to instrument the underlying knexjs itself; however, it would be very useful to see some form of OTEL/opentelemetry support implemented at the mikro-orm level (akin to prisma) to be able to see how the "groups" of seemingly random knexjs queries can be traced down into a particular mikro-orm flush, for example. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
|
have |
Beta Was this translation helpful? Give feedback.
-
|
My wish would be a native esm build of mikro-orm. |
Beta Was this translation helpful? Give feedback.
-
|
Maybe we should also move the Poll here: #3982 |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
|
ClickHouse support can be added |
Beta Was this translation helpful? Give feedback.
-
|
I hope we can get this feature in v6. Although already discussed I thought I'd mention it here anyways: #3768 |
Beta Was this translation helpful? Give feedback.
-
|
When will v6 be released, do you have a set plan? |
Beta Was this translation helpful? Give feedback.
-
|
In case you missed it, the latest v6 dev version ( https://stackblitz.com/edit/mikro-orm-v6-strict-partial-loading?file=basic.test.ts What other places could be more strict or better typed? |
Beta Was this translation helpful? Give feedback.
-
|
How about FOREIGN TABLE(https://www.postgresql.org/docs/current/postgres-fdw.html) support? but this might be an exclusive feature for postgreSQL, though. |
Beta Was this translation helpful? Give feedback.
-
|
What about integration with postgres.js for potential performance improvements? |
Beta Was this translation helpful? Give feedback.
-
|
I'd like to see an option to enable logging only on a specific flush ( |
Beta Was this translation helpful? Give feedback.
-
|
I'd love to have a Could probably PR it |
Beta Was this translation helpful? Give feedback.
-
|
With Decorators and Decorator Metadata now at stage 3 for TC-39 and with Typescript 5.2 bringing the metadata implementation I'm curious if this library plans to pivot to the official decorators in a future major (v6-v7)? Or will this be something done in the longer term? Since this is an all or nothing change and you can't mix and match old and new decorators. |
Beta Was this translation helpful? Give feedback.
-
|
What is the purpose of removing I expect repositories to be collections of objects. So in this sense, it's ok to remove |
Beta Was this translation helpful? Give feedback.
-
|
Adonis lucid orm which my other office project is currently using has some features that Mikroorm can import. One thing would be to add more querybuilder methods |
Beta Was this translation helpful? Give feedback.
-
|
@B4nan Hello, is dataloader support not in the v6 release plan now? |
Beta Was this translation helpful? Give feedback.
-
|
Do you have any estimate of when it will be released? |
Beta Was this translation helpful? Give feedback.
-
|
Just wanted to say, I love the new Getting Started guide in the 6.0 docs 😍 |
Beta Was this translation helpful? Give feedback.
-
|
Just installed v6 to test along our codebase. Works great ! For some reasons for the time being, I have to use a node version < 18. Although the v6 release changes indicate a "drop support for node < 18 lts", everything is working fine (using Postgresql driver at least). Does this requirement about the node version affects only some specific mikro-orm functionnalities on some specific drivers ? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Upgrading guide
https://mikro-orm.io/docs/next/upgrading-v5-to-v6
Update 05-11-2023
v6branch is now merged to master and first release candidate it out.Update 25-10-2023
Things are almost ready and I plan to merge v6 branch to master next week, and mark it as a release candidate. All the breaking changes and refactorings I wanted to do are already present, and there is one last feature I wanted to implement (which is not technically blocking anything and can land in a 6.x release too). I hope I will have time to finish the getting started guide and update the docs before the end of the year, and ship the stable.
If you want to help, now is the time to start testing v6. If you have a relatively large app that is well covered with tests, it would be great if you can try to upgrade and report any issues you find on the way.
Update 03-03-2023
One important feature landed - strict partial loading. This comes with a breaking change on type-level, the partial loading hint (
fieldsoption) now supports only string paths, like thepopulateoption. Available for testing sincev6.0.0-dev.44.Update 03-02-2023
Most of the planned breaking changes are now implemented. I am still thinking about #3982 (was more sure about this at the time of writing, but now I am leaning towards keeping as-is) and #3989 (also not 100% sure here, maybe not worth it) and I also want to polish the reference/collection API a bit. I will probably focus on overall behavior improvements and docs rather than some big new features (like the polymorphic relations), as that can be implemented later via feature releases.
Update 03-12-2022
Initial v6 development started in https://github.com/mikro-orm/mikro-orm/tree/v6 branch. The branch is configured to publish v6 canary builds automatically. After some time, this branch will be rebased to master, until then, the docs for it won't be available. The initial migration guide WIP is here:
https://mikro-orm.io/docs/next/upgrading-v5-to-v6
I am slowly starting to think about what to do with v6. I'd like to ask for ideas, both feature-wise, and API polishment-wise - I'd like to rename some confusing options.
This list will be updated as time goes on, right now it's just a few ideas I keep holding in my head.
Renames
PropertyOptions.onUpdateIntegrity->PropertyOptions.updateRulePropertyOptions.onDelete->PropertyOptions.deleteRuleEntityProperty.reference->EntityProperty.kindReferenceType->ReferenceKindPropertyOptions.wrappedReference->PropertyOptions.ref(over time we might alias this toreferencebut let's not interchange existing options for now)AssignOptions.mergeObjects->AssignOptions.mergeObjectPropertiesEntityOptions.customRepository->EntityOptions.repositoryOptions.cache->Options.metadataCacheRemoval
PropertyOptions.customTypein favor of justtype(it already works with it), will keep the distinction on theEntityPropertyinterface level probablyOptions.typein favor of driver exports ofMikroORManddefineConfigconnectparameter ofMikroORM.initin favor of theconnectoption in the configConfigurationparameter fromMikroORM.initin favor of the POJO options object (it was always meant to be internal)id:gte), they were deprecated a long time agoem.nativeInsertin favor ofem.insertem.persistLater,em.removeLaterSchemaGenerator.generatePrimaryKeyTypesymbol in favor ofPrimaryKeyPropBreaking changes
ReferenceandCollection, clean up the API (addedCollection.load()method)PKgeneric argument and replace it withPrimaryProperty<this>thistype inBaseEntityinstead of explicit type argFindOptions.fieldswill be an array of strings just likepopulatehint (needed for stricter type checks)mappedByin 1:m options (now its optional as it can be linked from the m:1 owner, but its confusing)persist/remove/flushmethods fromEntityRepository#4130BigIntsupport #4719Features
--config#3924em.findByCursor()#3975BaseEntityand PK type inference #3997raw()helper #4094join onconditions forpopulateWhere#4025MikroORM.initSync()helper #4166GeneratedCacheAdapterfor production usage #4167raw()helper #4197LoggerContextwith labeling support #4233Refwrapper on scalar properties #4358@Indexand@Uniquedecorators on embeddables #4736em.createstrictly typed for relations too #4752Opttype as an alternative toOptionalPropssymbol #4753onMetadataandafterDiscovered#4799Other
allowGlobalContextwarning more verbose and warn about its usageBeta Was this translation helpful? Give feedback.
All reactions