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
v6
branch 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 (
fields
option) now supports only string paths, like thepopulate
option. 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.updateRule
PropertyOptions.onDelete
->PropertyOptions.deleteRule
EntityProperty.reference
->EntityProperty.kind
ReferenceType
->ReferenceKind
PropertyOptions.wrappedReference
->PropertyOptions.ref
(over time we might alias this toreference
but let's not interchange existing options for now)AssignOptions.mergeObjects
->AssignOptions.mergeObjectProperties
EntityOptions.customRepository
->EntityOptions.repository
Options.cache
->Options.metadataCache
Removal
PropertyOptions.customType
in favor of justtype
(it already works with it), will keep the distinction on theEntityProperty
interface level probablyOptions.type
in favor of driver exports ofMikroORM
anddefineConfig
connect
parameter ofMikroORM.init
in favor of theconnect
option in the configConfiguration
parameter fromMikroORM.init
in favor of the POJO options object (it was always meant to be internal)id:gte
), they were deprecated a long time agoem.nativeInsert
in favor ofem.insert
em.persistLater
,em.removeLater
SchemaGenerator.generate
PrimaryKeyType
symbol in favor ofPrimaryKeyProp
Breaking changes
Reference
andCollection
, clean up the API (addedCollection.load()
method)PK
generic argument and replace it withPrimaryProperty<this>
this
type inBaseEntity
instead of explicit type argFindOptions.fields
will be an array of strings just likepopulate
hint (needed for stricter type checks)mappedBy
in 1:m options (now its optional as it can be linked from the m:1 owner, but its confusing)persist/remove/flush
methods fromEntityRepository
#4130BigInt
support #4719Features
--config
#3924em.findByCursor()
#3975BaseEntity
and PK type inference #3997raw()
helper #4094join on
conditions forpopulateWhere
#4025MikroORM.initSync()
helper #4166GeneratedCacheAdapter
for production usage #4167raw()
helper #4197LoggerContext
with labeling support #4233Ref
wrapper on scalar properties #4358@Index
and@Unique
decorators on embeddables #4736em.create
strictly typed for relations too #4752Opt
type as an alternative toOptionalProps
symbol #4753onMetadata
andafterDiscovered
#4799Other
allowGlobalContext
warning more verbose and warn about its usageBeta Was this translation helpful? Give feedback.
All reactions