All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
4.3.4 (2020-12-11)
- core: hydrate embeddable scalar properties (#1192) (eb73093)
- core: validate overridden properties by embeddables (#1172) (6629a08), closes #1169
- knex: reject in
commit()
method if commit statement fails (#1177) (f3beb7f), closes #1176 - mariadb: fix transforming of raw results in
run
mode (417a4c9) - sql: ensure correct order of results when fetch joining (7453816), closes #1171
- sql: use
__
when aliasing fetch-joined properties (1479366), closes #1171
- core: auto-discover base entities (33bda07)
4.3.3 (2020-12-04)
- cli: print both
entities
andentitiesTs
in debug command (90b85e4), closes #1139 - core: fix em.create() with nested relations (dde119f), closes #1150
- core: fix populating 1:m where the owner uses
mapToPk
(85a7c9d), closes #1128 - core: fix propagating of changes to 1:m with
mapToPk
(b38df3e), closes #1128 - core: fix snapshotting of composite properties (b5f19f2), closes #1079
- schema: allow using const enums (e02ffea), closes #1096
- schema: fix diffing tables in other than default schema (429d832), closes #1142 #1143
- sql: allow no results in
em.count()
(bc3cdf6), closes #1135 - sqlite: fix querying by 1:1 relation with composite PK (0da6347), closes #1157
4.3.2 (2020-11-24)
- core: disable propagation when
mapToPk
is used (6f6a204), closes #1124 - core: do not use custom toJSON when storing result cache (86ec3b3)
- core: fix comparison of object properties and bigints (2119a65), closes #1117
- core: fix computing changesets with reference as PK (5504436), closes #1111
- core: fix serialization of properties with same name (d4d9c48), closes #1115
- sql: allow using raw value for JSON prop with custom type (2a17c59), closes #1112
4.3.1 (2020-11-20)
- core: assign embedded properties from class objects (#1087) (c2b4972), closes #1083
- core: do not interpolate escaped question marks (c54c2a2)
- core: rework unique property extra updates (bd19d03), closes #1025 #1084
- postgres: use
->>
to search in object embeddables (78c9373), closes #1091 - ts-morph: fix discovery of
IdentifiedReference
with ts-morph (d94bd91), closes #1088
4.3.0 (2020-11-13)
- cli: add missing peer dependencies (#1057) (83bd6b3)
- core: always check remove stack when cascade persisting (a9a1bee), closes #1003
- core: do not override child class properties (#1000) (6d91f1f)
- core: ensure correct grouping and commit order for STI (8b77525), closes #845
- core: ensure correct handling of empty arrays (c9afabb)
- core: ensure correct handling of empty arrays (1c4ba75)
- core: ensure we store the right value for bigint PKs (7d7a1c9), closes #1038
- core: fix cascading when assigning collections (d40fcfa), closes #1048
- core: pin dependencies (0f3a8e5), closes #961
- deps: update dependency @docusaurus/core to v2.0.0-alpha.66 (#978) (475d3b0)
- deps: update dependency @types/mongodb to v3.5.33 (#1045) (81514d8)
- discovery: allow using absolute paths in
entities
(584854c), closes #1073 - mongo: do not create collections for embeddables (a0cc877), closes #1040
- schema: do not add unique constraint to PKs (a7da03d), closes #1064
- schema: ensure we do not ignore some columns (5d7dfc1), closes #1009
- schema: fix diffing FKs in MySQL 8 (#1030) (b6f31a5)
- schema: pass entity name to
joinKeyColumnName()
(fe4b7bd), closes #1026 - sql: allow using dot inside custom order by expression (11e8c56), closes #1067
- sql: convert custom types at query builder level (83d3ab2)
- sql: do not batch update unique properties (87b722a), closes #1025
- sql: fix populating M:N via joined strategy with conditions (7113827), closes #1043
- sql: implement diffing of simple scalar indexes (dc81ef0), closes #957
- sql: inline array parameters when formatting queries (a21735f), closes #1021
- sql: interpolate
??
as identifier (a3d4c09), closes #983 - sql: take snapshots of collections populated via joined strategy (5f3288a), closes #1041
- validation: don't validate inherited STI props (#998) (63d1f57), closes #997
- core: allow calling
Collection.set()
on not initialized collections (1d0bb85), closes #1048 - core: allow extending embeddables (#1051) (89d3250), closes #1049
- core: allow mapping
null
toundefined
optionally (55de84e), closes #1019 - core: allow using multiple ORM instances with RequestContext (e11040d), closes #872
- core: maintain transaction context automatically (#959) (e0064e4)
- count: initial implementation of loadCount (#955) (3371415), closes #949
- query-builder: allow mapping of complex joined results (#988) (60dd2d8), closes #932
- release: add automatic nightly releases (7f8a10c), closes #339
4.2.3 (2020-10-24)
- core: ensure
qb.getFormattedQuery()
works with postgres (63b2521) - core: ensure global filters are enabled by default (#952) (28124fb)
- core: rework access to target entity metadata from collections (10ca335), closes #956
4.2.2 (2020-10-22)
- core: fix mapping of params with custom types (e5049b1), closes #940
- schema: make sure we do not create FK columns twice in sqlite (1eb6374), closes #942
- only create migrations folder if migrationsList is not used (#941) (1e5c5e8), closes #907
- core: fix wrongly inferred 1:m metadata (82f7f0a), closes #936
4.2.1 (2020-10-20)
- core: make sure refreshing of loaded entities works (45f3f42)
- core: validate object embeddable values on flush (cd38e17), closes #466
- core: validate the object passed to
em.persist()
(90678c2)
4.2.0 (2020-10-18)
- core: fix propagation of conditions with operators (05acd34)
- core: reset the working state of UoW after failures (6423cf7)
- core: update umzug types to 2.3 (4668e78), closes #926
- core: use entity ctors also when all PKs are provided in
em.create()
(b45b60b), closes #924 - schema: fix automatic discriminator map values in STI (7cd3c6f), closes #923
- schema: improve column type equality check (#925) (152f399)
- core: add basic (in-memory) result caching (2f8253d)
- core: add native support for enum arrays (9053450), closes #476
- core: allow defining multiple entities in single file (e3ab336), closes #922
- core: allow mapping m:1/1:1 relations to PK (#921) (894f17e), closes #750
- core: allow storing embeddables as objects (#927) (ba881e6), closes #906
- serialization: rework handling of cycles (1a2d026)
4.1.1 (2020-10-14)
4.1.0 (2020-10-12)
- core: allow defining PKs inside
@BeforeCreate()
(0a2299f), closes #893 #892 - core: do not cascade remove FK primary keys (37415ce), closes #915
- core: do not fire onInit event twice (9485f48), closes #900
- core: ensure custom types are comparable (3714a51), closes #864
- core: fix detection of custom type PKs with object value (61095ce), closes #910
- core: fix mapping of returning zero values in embeddables (e42ae4a), closes #905
- core: skip index initialization for abstract entities (#881) (a2d381f)
- migrations: always ensure the migrations folder exists (a1e0703), closes #907
- migrations: respect custom file names when running by name (80e5b58), closes #883
- mongo: filter by serialized PK inside group condition (a492a64), closes #908
- postgres: do not convert date type columns to Date js objects (2cfb145), closes #864
- schema: allow using non-abstract root entity in STI (9dd3aed), closes #874
- schema: make STI metadata discovery order independent (f477a48), closes #909
- sqlite: rework schema support for composite keys in sqlite (82e2efd), closes #887
- typings: improve inference of the entity type (67f8015), closes #876
- core: implement bulk updates in mongo driver (5f347c1), closes #732
- core: implement bulk updates in sql drivers (b005353), closes #732
- core: improve hydration performance (3cafbf3), closes #732
- core: interpolate query parameters at ORM level (742b813), closes #732
- core: optimize entity hydration (6c56a05), closes #732
- core: use batching in uow deletes (8cbb22a), closes #732
- core: use bulk inserts in all drivers (10f2e55), closes #732
- core: use dedicated identity maps for each entity (84667f9), closes #732
- core: use faster way to check number of object keys (82f3ee4), closes #732
- core: use JIT compilation for diffing entities (60f10a4), closes #732
- core: use JIT compilation for snapshotting entities (5612759), closes #732
- core: use JIT compilation in hydrator (1f06a52), closes #732
- core: use JIT compiled PK getters/serializers (0ec99dc), closes #732
- core: use raw sql for batch updates (1089c57), closes #732
4.0.7 (2020-09-24)
- core: add groupBy, having and schema to
CountOptions
(d3c3858)
4.0.6 (2020-09-22)
- deps: update dependency escaya to ^0.0.49 (#854) (d4737b6)
- migrations: migrate only one version down with explicit tx (50567dd), closes #855
- query-builder: do not select 1:1 owner when auto-joining (86c3032), closes #858
- query-builder: fix auto-joining of 1:m PKs (920995f), closes #857
- query-builder: fix count query with auto-joining of 1:1 (9b8056c), closes #858
- query-builder: wrap nested array conditions with
$in
operator (939989a), closes #860
4.0.5 (2020-09-21)
- core: fix merging results from QB to existing entity (218098a)
- schema: defer creating of composite indexes + implement diffing (f57b457), closes #850
4.0.4 (2020-09-19)
- core: allow filter condition callbacks without arguments (5b3401f), closes #847
- core: allow filter condition callbacks without arguments (da8fbfc), closes #847
- core: allow querying
ArrayType
with a value (e505358), closes #844 - core: improve metadata validation of STI relations (0b97af8), closes #845
- core: update filter typing to allow async condition (#848) (2188f62)
- deps: update dependency escaya to ^0.0.44 (#839) (fedb41c)
- deps: update dependency escaya to ^0.0.45 (#842) (d9f9f05)
- query-builder: fix mapping of 1:1 inverse sides (a46281e), closes #849
- query-builder: fix mapping of nested 1:1 properties (9799e70)
- core: allow setting loading strategy globally (e4378ee), closes #834
- migrations: allow providing transaction context (1089c86), closes #851
- Revert "refactor: return
target
from decorator definition" (e021617)
4.0.3 (2020-09-15)
- core: make a copy of custom type values to allow array diffing (6ae72ae)
- core: create the helper instance early (f4f90eb)
- core: do not generate internal entity uuid (9f46aa4)
- core: do not use
em.merge()
internally (6a1a6d6) - core: remove WrappedEntity.__internal map (2228fcb)
- core: skip processing of hooks when there are no hooks (425784b)
- core: store entity identifier on entity helper (403acca)
- core: store original entity data on entity helper (6a91b01)
4.0.2 (2020-09-11)
- core: simplify
Collection
type args (1fb6cec)
- entity-generator: do not use ts-morph (478a7bb)
- migrations: do not use ts-morph in migrations (9800dc1)
4.0.1 (2020-09-10)
- core: hydrate user defined discriminator columns (#831) (8671440), closes #827
- core: refactor internals to reduce number of cycles (#830) (3994767)
4.0.0 (2020-09-08)
- cli: custom tsconfig gets wrong path (#597) (3cdb5dd)
- core: add
RequestContext.createAsync()
for Koa (ae3bc0f), closes #709 - core: allow date to be used as primary key (#609) (d421be8)
- core: allow having same property name as entity name (6b9d4cd), closes #655
- core: allow hiding PKs in
toObject()
(0a920dd), closes #644 - core: allow populating FK as PK in
toJSON()
(e05d780) - core: do not cascade merge new entities (2b0f208)
- core: do not lookup in identity map with non-PK conditions (4fb0e52), closes #625
- core: do not merge entity instances in
em.create()
(50aaef8) - core: fix
em.create()
with deeply nested data (#683) (a302473), closes #678 - core: fix default value for
cache.enabled
(9be725f) - core: fix extracting PK out of reference wrapper (db037dc), closes #589
- core: map values from returning clause via hydrator (c5384b4), closes #725
- core: mark all properties as populated for new entities (5f7fb8f), closes #784
- core: reset collections when assigning to those not initialized (e19a6b4)
- core: support comments in tsconfig.json (6506695), closes #730
- core: support nullable bigints (3bb2a2d), closes #631
- core: support self referencing with Reference wrapper (fd1e158), closes #610
- core: throw when trying to call
em.remove(..., null)
(77c52dd) - mapping: support mixed M:N with composite PK on one side only (a951918)
- mariadb: enable
bigNumberStrings
toggle (ee90c64), closes #578 - mongo: add support for
$re
operator in mongo (13fe6e5), closes #613 - postgres: time column type should be a string (#774) (237ddbf)
- query-builder: make sure
$or
and$and
combined works correctly (c8d3a34), closes #792 - query-builder: make sure we use the right alias in complex
$and
queries (522787e), closes #786 - query-builder: use correct operators in complex and/or conditions (#803) (aca0e10)
- schema: do not create indexes for each composite PK (91b38cb), closes #760
- postgres: keep
bigint
/numeric
types as string (014f3b5), closes #324 - sql: pivot joining of m:n when no target entity needed directly (2b0bb72), closes #549
- sql: pivot joining of m:n when target entity is null (3b05a59), closes #548
- sql: rework implicit m:n pivot joining (7928c50)
- sql: support composite keys in
EntityCaseNamingStrategy
(8d07727) - sql: use composite FKs instead in schema generator (f5c2302)
- utils: ts-node check now runs in a webpack environment (#657) (4384019)
- core: add
driver.nativeInsertMany()
method (#688) (78b2341), closes #442 - core: add
em.begin/commit/rollback
methods (#717) (5414c52) - core: add
EntityRepositoryType
symbol (#698) (ffae0a8), closes #696 - core: add
expr
helper to allow custom expressions in EM API (39ced1b), closes #802 - core: add property serializers (3d94b93), closes #809
- core: add support for entity and property comment (#668) (c01b338)
- core: add support for filters/scopes (#663) (c1025b9), closes #385
- core: add support for flush events (#642) (1f12aff), closes #637
- core: add support for ordering by NULLS (#677) (74ee0cb), closes #675
- core: allow persisting 1:m collections (#686) (379b289), closes #467
- core: allow using
knex.raw
in query params (e6b9f0e), closes #802 - core: allow using destructing assignments in entity ctors (06a5490), closes #781
- core: execute hooks via
EventManager
(#623) (6a7f627), closes #622 - core: expose populate parameter in
wrap(e).init()
(d33432a), closes #814 - core: readonly entity (#738) (7581592)
- core: refactor internal dependencies to support Yarn PnP (#645) (7e21bb8)
- core: refactor merging to allow querying by custom type (#800) (bfbc5f8), closes #739
- core: support globs in
entities
(#618) (ee81b61), closes #605 - core: type safe references (#691) (77d64ba), closes #214
- core: use custom errors for failHandler and metadata (6db22af), closes #611
- migrations: add
Migration.execute()
method (5c1f60a), closes #770 - migrations: add support for initial migrations (#818) (26b2228), closes #772
- migrations: allow specifying list of migrations (#741) (5a0f2a6), closes #705
- migrations: allow using knex in migrations (fc2fbaa), closes #799
- postgres: add
$ilike
,$overlap
,$contains
,$contained
(3c59885), closes #641 - query-builder: allow ordering by custom expressions (e4674c7), closes #707
- query-builder: make sure we do not prefix virtual props (fd0766c), closes #734
- cli: allow the use of TS path mapping (#554) (2444192)
- core: accept references in collection
add/remove/set
methods (26d132f) - core: add
connect: boolean
param toMikroORM.init()
(43a9ce9) - core: add
having
toFindOptions
(952fd2f) - core: add custom types for array, blob and json (#559) (7703cc5), closes #476
- core: add pagination support (
QueryFlag.PAGINATE
) (#544) (d43241e) - core: add support for alternative loading strategies (#556) (0b89d4a), closes #440
- core: add support for event subscribers (#614) (1281356), closes #516
- core: add support for lazy scalar properties (#585) (cd8c683), closes #427
- core: add support for Node.js 14 (#522) (2093af8)
- core: add support for single table inheritance (#503) (8c45339), closes #33
- core: allow adding items to not initialized collections (#489) (8be8a4d)
- core: allow adding items to not initialized collections (#489) (ca5eb64)
- core: do not cache metadata for other than ts-morph provider (#569) (49fb4eb)
- core: pass entity as parameter in
onCreate
andonUpdate
(#564) (3044a19) - core: split project into multiple packages (#475) (636e861)
- core: use custom exceptions for driver related errors (#539) (2c30679)
- discovery: use both entity name and path as key in Metadat… (#488) (72f0aca)
- mapping: add support for embeddables (#514) (0fa06b1)
- migrations: support custom migration names (8ea71b6), closes #449
- mongo: add
getCollection()
method toMongoEntityManager
(79a9a7d) - mongo: allow creating any kind of index in mongo (8fbe48a)
- mongo: allow using different primary key types than ObjectId (#568) (e523794), closes #349
- postgres: use
jsonb
column type by default (b6c0578) - sql: add
execute()
method toSqlEntityManager
(e389d40) - sql: add
groupBy
toFindOptions
(2f6687a) - sql: add
qb.raw()
to allow using raw snippets in QB (c09a5b6), closes #598 - sql: add support for computed properties via
@Formula()
(#553) (68b9336) - sql: add support for sub-queries (#525) (e07f8ad)
- sql: allow delete queries with auto-joining via sub-queries (#538) (e44bc56), closes #492
- sql: allow update queries with auto-joining via sub-queries (#537) (cff9a3a), closes #319
- sql: ensure correct table order in schema generator (#617) (b3949cf)
- sql: initialize query builder in select mode (#565) (3e3abe7)
- ts-morph: add ORM version to cache invalidation logic (f28119a)
- ts-morph: infer nullability from property types (4c45e00)
- ts-morph: use
.d.ts
files for ts-morph discovery (#616) (54ce064)
- cli: transpile only when using ts-node in CLI (f739f39)
- core: do not generate sql when logging disabled (f232bb3), closes #732
- core: implement bulk deletes (#757) (d83f648), closes #732
- core: improve performance of QB a bit (efc044f), closes #732
- core: improve speed of inserting new items (bfeb2e3), closes #732
- core: optimize QB for simple cases (99cfca7), closes #732
- core: reduce usage of
wrap
helper internally (66ffc3b), closes #732 - core: simplify
MetadataStorage.find()
method (9abbe03), closes #732 - core: use actual Map for identity maps (3645a20), closes #732
- core: use
Set
instead of array for cycle lookups (dff0c9d), closes #732 - core: use
Set
instead of array for stacks in UoW (12ba811), closes #732
Please see the upgrading guide.
3.6.15 (2020-06-05)
- core: do not merge entity instances in
em.create()
(30010f8) - core: fix extracting PK out of reference wrapper (79a4f5a), closes #589
- mapping: support mixed M:N with composite PK on one side only (a55ea22)
3.6.14 (2020-05-21)
- core: do not extend domain typings (collides with sentry) (#563) (e3cd0bd)
- core: propagate PKs created via
prop.onCreate
(#561) (83873ec) - mapping: fix handling of
fieldName
vsjoinColumn
in m:1/1:1 (#573) (6e2f200) - validation: throw when trying to call
em.flush()
from hooks (#574) (c3d0ce6), closes #493
3.6.13 (2020-05-03)
- core: avoid evaluating virtual properties on find (d234178), closes #535
- core: fix lazy initializing of composite PK collections (a4c56ed), closes #529
- core: fix propagation of query when populating (23b2d06), closes #533
- schema: support empty string in
@Property({ default: '' })
(4ec19c7), closes #534
3.6.12 (2020-04-28)
- core: fix
qb.count()
with composite keys (#520) (51f229a) - mapping: do not require method definitions in
EntitySchema
(58c9643), closes #512 - mongo: restrict object id conversion only to known properties (86cd027), closes #401
- schema: use
utf8mb4
charset in mysql schema (82fa93d), closes #513
3.6.11 (2020-04-23)
- core: throw when trying to call
em.remove(..., null)
(f6e3a39) - schema: improve diffing of nullable columns (#508) (166a29f), closes #507
3.6.10 (2020-04-22)
- core: do not run
onUpdate
when persisting new entity (10c0c40), closes #504 - postgres: do not map returned values that are already present (99a4f01), closes #501 #465
3.6.9 (2020-04-19)
- mariadb: fix diffing nullable columns in mariadb 10.4 (#496) (c36b495), closes #491
- schema: fix handling of FKs in updateSchema() (#498) (72088ba), closes #494
3.6.8 (2020-04-18)
- core: do not override internal copy of entity data when merging (40830d5), closes #486
- core: ignore removed entities during commit discovery (7581a3d)
3.6.7 (2020-04-16)
- core: do not propagate remove action to m:1 with orphan removal (94c71c8), closes #482
- core: export
AbstractSqlConnection
frommikro-orm
(d38cdde), closes #483 - metadata: fix validation of inversedBy/mappedBy (d2c3ce6)
- mongo: add support for mongodb text indexes (#481) (75f20f6)
- mongo: add support for nullable unique indexes (#485) (e8424a0)
3.6.6 (2020-04-12)
- discovery: ignore files that does not return classes (0226137), closes #474
- postgres: handle case sensitive table names correctly (aa3a087), closes #472
- sql: do not prefix virtual columns in QueryBuilder (38eaae3), closes #473
- typings: improve support for Reference wrapper in FilterQuery (7497c45)
3.6.5 (2020-04-08)
- core: do not take snapshots of collection in
assign()
(b9fe617), closes #467 - typings: add
customType
to PropertyOptions (46edde0) - typings: improve typing of
PropertyOptions.type
(587f81d) - typings: improve typing of onDelete and onUpdateIntegrity (0a6ae55)
3.6.4 (2020-04-07)
- core: fix conversion of date strings to Date objects (6342ff0)
- schema: inherit indexes from base entities (bae46c7), closes #463
3.6.3 (2020-04-06)
- mapping: support multiple base entities (A extends B extends C) (6e72881), closes #459
- mapping: support returning knex.raw from custom type (3dd41ad), closes #372
3.6.2 (2020-04-04)
- cli: respect
baseDir
inmigrations.path
(943b0d9), closes #448 - cli: respect baseDir in debug command (aa653f1), closes #447
- core: fix circular dependency in EntityGenerator (b886abe), closes #451
- core: map
prop.name
toprop.fieldName
when it does not match (98d4328) - mapping: fix inference of chained PK column type (05b86cf), closes #446
- migrations: enforce single connection usage for transactions (9fc1e25), closes #444
- sql: fix support for cross schema m:n collections (36cf26c), closes #450
3.6.1 (2020-04-02)
- core: do not call convertToJSValue when we already have an entity (3cf3da6), closes #435
- schema: rework enum handling in schema generator (#445) (c041b54), closes #397 #432
3.6.0 (2020-03-30)
- core: allow for the number zero as a primary key (#426) (88b979a)
- core: improve ts-node detection (f1afaa6)
- core: support indexes in entity generator (#437) (90c0162), closes #421
- schema: add
safe
anddropTables
options to schema generator (2d2c73d), closes #416
3.5.2 (2020-03-23)
- mapping: respect columnType option (e96d63d), closes #420
- sql: simplify transactions handling with knex (9a5763b)
3.5.1 (2020-03-22)
- mysql: add timezone config option and fix TZ docs (e0a5597), closes #418
- typings: simplify
FilterQuery
type, removeUnionOfArrays
(d919eec)
3.5.0 (2020-03-21)
- core: export ValidationError directly (e3e02ea), closes #404
- mongodb: do not convert payloads to ObjectId (9a9d9e0), closes #401
- mongodb: keep topmost transaction context when nesting (d921bc1), closes #400
- schema: fix schema generator in MySQL 8 (#398) (955b0ac)
- sql: do not serialize db values from custom types (894e055), closes #372
- webpack: do not analyze enum values when already provided (3efd6ca), closes #413
- core: add support for composite keys (#395) (0574dc8), closes #66
- core: allow manually specifying on update/on delete clause (fc9d86a)
- discovery: validate not discovered entities used in relations (12338da)
- migrations: do not create empty migrations without -b (564e988), closes #399
- mongo: allow passing additional index options (dd3f795), closes #415
- sql: use collection snapshots to compute precise diff (#405) (d4bda99)
3.4.1 (2020-03-09)
- build: ignore MongoDB data directory (#394) (fea6df0)
- postgres: ignore other than the current schema (c05bec1), closes #386
3.4.0 (2020-03-08)
- migrations: add support for JS migrations (#384) (b41f0bc)
- mongo: add support for transactions in mongodb (#392) (8988202), closes #34
- mongo: add support for indexes in mongo driver (#393) (7155549), closes #159
- sql: add
schema
param toFindOptions
and QB (#388) (0c8ef92), closes #284 - sql: add support for bigint (#389) (5ddd573), closes #361
3.3.6 (2020-03-06)
- core: add
tableName
alias forcollection
(9d19263) - core: make
dbName
optional (infer fromclientUrl
) (30427c5) - mysql: normalize
false
to0
in defaults (caff3fd) - postgres: fix mapping of
double
type (8f0547f) - schema: postpone FK constraints in schema updates (d0c5fdf), closes #327
- sqlite: support pivot tables with composite key (25598e2), closes #382
3.3.5 (2020-03-03)
- core: improve default value handling in postgres (#381) (154aab2), closes #380
- mapping: infer correct type of enums with ts-morph (2aae486)
- mapping: throw when only abstract entities were discovered (00d7543)
- utils: improve path detection based in decorators (#378) (c3c5a43)
- validation: throw when multiple property decorators are used (5a8d3f2)
3.3.4 (2020-03-02)
- core: do not cascade persist removed entities (d2fd33f), closes #369
- query-builder: substitute top level operators with primary keys (861a0ca)
3.3.3 (2020-02-27)
- core: allow entity in constructor params in em.create() (2846ab4)
- mapping: allow using custom types on primary keys (ff2b7c9), closes #361
- mapping: create dirty collections via
em.create()
(b864038) - mapping: remove *Entity interfaces (f5181b2)
3.3.2 (2020-02-26)
- core: make entity manager instance protected in repository (477ed7b), closes #367
- utils: treat Buffer as scalar when merging objects (#366) (c88e669), closes #365
3.3.1 (2020-02-25)
3.3.0 (2020-02-25)
- core: do not re-hydrate existing entities in
EntityFactory
(a727052) - core: do not require entity reference to have collection props (3331931)
- deps: update dependency
uuid
to v7 (#355) (f2a96aa)
- core: add
loadItems()
method toCollection
(#347) (de566c5) - core: propagate changes to 1:1 and m:1 relations (#352) (4903a48), closes #307
- core: rework commit logic of UoW to ensure right query order (#351) (52e4b8a)
3.2.1 (2020-02-20)
3.2.0 (2020-02-19)
- cli: do not require existing entities in generate-entities command (4d5853f), closes #340
- discovery: fix support for globbing (995a3e8), closes #341
- typing: align EntityRepository populate signature to EntityManager (#343) (ec5a30e)
- mapping: allow defining schema via EntitySchema helper (#335) (6d1a24c), closes #283
- sql: add @Index() and @Unique() decorators (#331) (6f86db3), closes #328 #226
3.1.1 (2020-02-15)
- cli: remove unused flag from
migration:create
(45a8d48), closes #326 - core: add TS non-null assertion operator for non-nullable columns (#323) (e6d6f21)
- core: report failure of connection during initialization (3153aa9), closes #325
- postgres: map numeric columns to number properties automatically (60c71a4), closes #324
3.1.0 (2020-01-27)
- core: add
em.populate()
helper method (26d2f33), closes #310 - core: add
Reference.getEntity()
andReference.getProperty()
(05dc5ce), closes #304
3.0.1 (2020-01-23)
- core: fix populate of 1:m with reference wrapper on inverse side (d048b64), closes #302
- typing: support reference wrapper in
FilterQuery
type (950d996), closes #305
3.0.0 (2020-01-15)
- core: allow object constructor parameters in entities (967f239), closes #166
- core: allow persisting 1:1 from inverse side (a1320ba), closes #210
- core: always ensure correct EM instance when merging entity (72f4525)
- core: always init collections when creating entity via em.create() (2500cf3)
- core: always query inverse side of 1:1 association (5a77a39)
- core: auto-wire 1:1 owner to inverse side (b11d316), closes #151
- core: disable auto flushing by default [BC] (#79) (3258c50), closes #63
- core: do not map null value in bool props to false (e54dbbd), closes #262
- core: do not set EM to entity until merging [BC] (#270) (d09c3ab), closes #267
- core: do not use request context in transactional/user forks (a2d7cbb), closes #182
- core: fix querying by m:n primary keys (cb568ee), closes #234
- core: ignore inverse side of 1:1 when computing change set (a2768dd), closes #183
- core: make
em.find()
where parameter required (3393d52) - core: make sure constructor params are sniffer from the constructor (fdd157c)
- core:
requireEntitiesArray
should be used only for validation (066b0ea), closes #293 - deps: update dependency chalk to v3 (#243) (0a17eb7)
- deps: update dependency fast-deep-equal to v3 (#250) (546e950)
- deps: update dependency ts-morph to v4 (#162) (b6dd073)
- deps: update dependency ts-morph to v5 (#229) (ab66d9c)
- deps: update dependency yargs to v15 (#244) (0fe3a55)
- generator: fixed default values and types for nullable properties (#191) (1cdccd3)
- mapping: do not override user defined nullable value in m:1 and 1:1 (b22567d)
- mapping: remove deprecated
fk
option from 1:m and m:1 decorators [BC] (#87) (99b436a) - mapping: remove obsolete parameter in UnderscoreNamingStrategy (#134) (8afa9a7)
- metadata: fix lookup of path to entity file on windows with tslib (a3c2900), closes #194
- query-builder: do not ignore parent operator in complex conditions (b9c00bc), closes #247
- query-builder: do not trigger auto-joining when not needed (b7b7a46), closes #249
- query-builder: fix malformed query when populate and join are used (244db67)
- query-builder: do not auto-join already auto-joined relation (6895e08), closes #277
- schema: do not make FK fields nullable if not needed (9c0ffc1), closes #218
- schema: prefer user-defined collection names in naming strategy (28f59ec), closes #111
- serializing: add check for circular references in toObject() (f7eaabb), closes #205
- serializing: do not ignore already visited collection items (ee4b50b), closes #222
- sql: support self-referencing m:n in pivot tables (3157572)
- sql: support uuid like PKs in M:N references (#272) (2abc19f), closes #268
- sql: support $ne and $eq operators with null (5f16f0a), closes #285
- cli: add
cache:generate
command to warm up production cache (9b4f8b6), closes #225 - cli: add
database:import
command to run external sql dumps (aea3614) - cli: add
debug
command to help with setting up the CLI (7919071), closes #136 - cli: add basic CLI tool (#102) (d20db41), closes #101
- cli: allow specifying path to tsconfig.json (00a1a4d), closes #298
- core: add support for custom types (#276) (96b2cad)
- core: add
@Repository
decorator (e4ca716) - core: add
em.findAndCount()
method (1be8eb1), closes #123 - core: add
findOneOrFail
method to entity manager and repository (#142) (0d57b7b), closes #133 - core: add
Reference.set()
method (08cbead), closes #264 - core: add
Reference<T>
wrapper to allow improved type safety (#117) (cdd44da), closes #107 - core: add
refresh
parameter toFindOptions
(#271) (a558935), closes #269 - core: add
WrappedEntity.toReference()
method (de01463), closes #264 - core: add support for bundling with Webpack (#200) (9db3633), closes #196
- core: add support for deep nested conditions with operators (#185) (0fa78e6), closes #172
- core: add support for eager loading (93a875d), closes #168
- core: add support for enums via
@Enum()
decorator (#232) (82ca105), closes #215 - core: add support for filtering and ordering of Collection items (672bf3b), closes #195
- core: add support for migrations via umzug (#209) (38ec973)
- core: add support for read connections (#116) (bc66fd6), closes #77
- core: add support for virtual property getters (#93) (f413b41), closes #82
- core: allow assigning PK to undefined/null (72167bd), closes #166
- core: allow empty where condition in
em.count()
(ee62b3e), closes #163 - core: allow filtering and sorting by nested query (bc2b91f), closes #157
- core: allow populating all relations via
populate: true
(1012420), closes #160 - core: allow whitelisting entity fields in
em.find()
(881b114), closes #176 - core: do not require entity attribute in collection decorators (#207) (89bbeb0)
- core: improve logging - add namespaces, colors and highlighting (#109) (64376ec), closes #108
- core: propagate nested where and orderBy when populating (226af1c), closes #195
- core: simplify entity definition and rework typings of FilterQuery (#193) (a343763), closes #124 #171
- core: use composite PK in many to many relations (#204) (e73bbdb), closes #121
- core: use knex to generate sql + enable connection pooling [BC] (#76) (6d79e57), closes #64
- core: make options parameter optional in MikroORM.init() (280d9a8)
- core: support default exported entities (9065ff6), closes #294
- drivers: add native UUID postgres type (#188) (8fd89fd)
- drivers: add support for MariaDB (#120) (833834b), closes #110
- drivers: allow passing additional driver options (1ceb0c1)
- hooks: add onInit hook fired after entity is created (#92) (64e68ed), closes #83
- logging: allow logging full query including params (#155) (6050dbf)
- mapping: add
EntityCaseNamingStrategy
(fc6da6b), closes #135 - mapping: add type-safe way to define relationships (423bb33), closes #146 #158
- mapping: allow overriding
getClassName()
inNamingStrategy
(#88) (b6700b6), closes #15 - mapping: auto-wire missing references from owner to inverse side (fc61be9), closes #149
- metadata: add
ReflectMetadataProvider
, rename thets-morph
one (#240) (d740eb3), closes #235 - metadata: auto-detect optional properties (cff0dd4)
- metadata: create instance of metadata instead of static one [BC] (#91) (e4acef0)
- metadata: improve validation during metadata discovery (1bd1899), closes #114
- mongo: improve query logging, use
inspect
instead ofstringify
(da842a3) - postgres: use timestamps with time zone by default (bd48124), closes #161
- query-builder: allow mapping to entities directly via getResult() (beca08e)
- query-builder: add $like and $re operators (regexp support) (e6da98f)
- schema: add basic entity generator (#98) (cc48b52), closes #78
- schema: add basic schema update (#97) (9bff976)
- schema: add support for create/drop database (#237) (6e58332)
- schema: allow dropping migrations table via
schema:drop
cli cmd (36402b9), closes #220 - schema: use knex in schema generator (#81) (31bc56e)
- sql: add
autoJoinOneToOneOwner
option (f2db3e0), closes #248 - sql: add
forceUtcTimezone
option (6bf747d), closes #181 - sql: support multiple conditions in JOINs (#94) (60b6885), closes #70
- sqlite: ensure the directory with database exists (908aba2)
- validation: validate one to one relationship metadata (ce57a3c), closes #149
- validation: warn when failing to get metadata of an entity (33ce7d3), closes #153
- core: do not cascade persist entity references (#279) (9d9e261)
- core: make Utils.prepareEntity() faster (69d2cf4)
- sql: use multi-insert when populating m:n collections (5ece088)
Please see the upgrading guide.
2.7.9 (2019-10-10)
- deps: update dependency ts-morph to v4 (#162 (b6dd073)
- metadata: fix lookup of path to entity file on windows with tslib (a3c2900), closes #194
2.7.8 (2019-09-19)
2.7.7 (2019-09-01)
2.7.6 (2019-08-15)
2.7.5 (2019-08-08)
- core: propagate changes in collections to both inverse/owner sides (c10f8e8)
2.7.4 (2019-07-23)
- core: normalize path to entity to unix style separators (c5933c7)
2.7.3 (2019-07-02)
- deps: update dependency globby to v10 (#72) (4fdda82)
- deps: update dependency ts-morph to v3 (#71) (abf671b)
- mapping: map raw results to entities when setting collection items (b562ec1), closes #67
- metadata: implement version property validation (37a9cf2)
2.7.2 (2019-06-14)
- sql: support
IS NULL
queries inQueryBuilder
(fd6edd5)
2.7.1 (2019-06-12)
- core: allow 1 and -1 in
QueryOrderMap
to maintain BC (3024386)
2.7.0 (2019-06-11)
- core: add support for mapping raw DB results via EM.map() (#61) (5d227ae), closes #56
- core: automatically fix wrongly assigned associations (#62) (05e6ce5)
- core: change
QueryOrder
enum values toASC/DESC/asc/desc
(5c18fda)
2.6.0 (2019-05-27)
- core: add support for partial selects (bcc005e)
- core: add support for refreshing managed entity via
init()
(8ae5323) - core: add support for transaction locking (#57), closes #41
- query-builder: allow selecting numeric literals (280e6ea)
- serializing: add support for hidden properties (4f6f013)
- context: use Domain API instead of async_hooks (#58)
2.5.0 (2019-05-13)
- core: support creating entity with client side UUID via
EM.create()
(0752fa4) - deps: update dependencies to support node 12 (#52), closes #50
- deps: update dependency fs-extra to v8 (#54)
- metadata: fix error message for missing TS source file (cb799ca)
- mongo: log correct taken time in
deleteMany
(f6fe821)
- core: persist all managed entities automatically when flushing (dbf6b43), closes #51
- metadata: validate missing base entities (03d61a8)
2.4.0 (2019-04-27)
- query-builder: do not ignore nested and group conditions (ab64d5a)
- query-builder: support calling
andWhere()
/orWhere()
without previouswhere()
(516e863)
- query-builder: add
groupBy()
andhaving()
toQueryBuilder
(1487803) - query-builder: add
QueryBuilder.clone()
method (313deb1) - query-builder: allow DISTINCT selects via
qb.select('...', true)
(31d6079) - query-builder: do not wrap fields that contain space (7ee2e5a)
- query-builder: allow string literals in where conditions (ec27c33)
- query-builder: support smart query conditions in
QueryBuilder
(2c5bca4)
2.3.2 (2019-04-26)
- mongo: support entity names in mongo connection API (c719b1e)
- mongo: support other top level keys than $set in
EM.nativeUpdate()
(d12bd78) - serializing: do not strip falsy values from serialized DTO (93e806f)
2.3.1 (2019-04-25)
- core: do not override loaded entity state when loading it again (79fabcb)
2.3.0 (2019-04-24)
- deps: update dependency ts-morph to v2 (#47)
- sql: support custom field names in select clause of query builder (b10c67f)
- core: implement orphan removal (#48), closes #36
- core: support lookup by array instead of explicit
$in
condition (4f600d6) - query-builder: add support for
join()
andleftJoin()
(#46), closes #45
2.2.2 (2019-04-18)
- serializing: allow serializing deeply nested structures (04c5190)
2.2.1 (2019-04-18)
- entity: allow boolean onlyProperties parameter in entity.assign() (9f318f7)
- entity: set dirty flag on collections updated via entity.assign() (d9d71fe)
- sql-drivers: work around empty IN () and NOT IN () conditions (13a1832)
- core: allow forking EM without clearing identity map (5e4603c)
2.2.0 (2019-04-14)
- core: ignore rest parameter in
entity.toJSON()
(147de7d) - core: merge only objects in
assign()
withmergeObjects
flag (749ca6f) - core: use serialized PK in
Collection.getIdentifiers()
(a24b6bc) - mongo: include missing query condition in logger in
deleteMany()
(bf280b4)
- core: add
@OneToOne
decorator (#42), closes #37 - core: add
createQueryBuilder()
toEntityRepository
API (a8ab04e) - core: add support for
nullable
columns in schema generator (8e508d3), closes #39 - core: add support for
unique
index in schema generator (f8a614b), closes #38 - core: allow changing join columns in 1:m, m:n and 1:1 (dd97760)
- core: allow entities in query data and where (convert them to PK) (e3a4962)
- core: allow orderBy in
EM.findOne()
and supportFindOneOptions
(0c61703) - core: allow self-referencing in M:N collections (5fda213)
- core: implement shadow properties -
@Property({ persist: false })
(6062118), closes #40 - mapping: use
mappedBy
/inversedBy
in 1:m/m:1 to be consistent (305dc6e) - metadata: do not require source files when type provided (f9a237f)
- query-builder: add
andWhere()
andorWhere()
toQueryBuilder
(d1a1127)
2.1.1 (2019-04-05)
2.1.0 (2019-04-04)
- core: rename
IEntity.uuid
to__uuid
to allow using uuid as property (44eb778) - core: do not require PK when computing change set (67415f6)
- core: support custom
toJSON
implementation in complex structures (2a9f6da) - core: support self-referencing in many to one association (0fe4ec7, 2499019)
- drivers: log correct client url (based on other connection options) (79f37bd), closes #29
- mysql: convert numeric value of bool fields to boolean (133afaa)
- serializing: always initialize collections when populating (5290737)
- core: add support for complex query conditions in SQL QueryBuilder (0ea3f41)
- core: allow using different PK than id (e.g. uuid) (40bcdc0)
- core: improve support for ts-node (220bcaa)
- core: implement
Cascade.MERGE
andCascade.ALL
(#27), closes #16 - core: support cascade merging detached entity (8801960)
- core: support smart search conditions (5537156), closes #20
- core: support wrapped query with operator in QueryBuilder (8a967b4)
- drivers: add support for PostgreSQL (edb6eec), closes #17
- drivers: allow choosing driver via new
type
option (9e765aa) - drivers: allow ordering of 1:M collections (8cfb62d)
- mongo: support using native helpers on collections directly (5d727e9)
- mongo: support user and password connection options (a2d9250)
- query-builder: add support for custom query expressions (#28)
- schema: add schema generator for SQL (#26)
2.0.3 (2019-03-12)
- allow masking of passwords with special characters (e2bf26d)
- do not cache Hydrator as it would have reference to wrong factory (fd124d5)
- require generic type of ChangeSet (fixes older TS compatibility) (d8503d7)
2.0.2 (2019-03-10)
- require path in JS entity schema to fix support of entities array (de63f35)
2.0.1 (2019-03-10)
- reorganize imports to fix circular dependency in built JS code (bf23587)
- introduce
Configuration
object (5916435)
2.0.0 (2019-03-09)
- improve hooks - allow changing db properties in beforeCreate/beforeUpdate hooks (closes #5) (26008a0)
- initialize 1:M collection when loading owner from EM (7c052bc)
- remove index type signature from PropertyOptions interface (19816ff)
- add support for MySQL (bcf2a65)
- add support for SQLite (d3adbb4)
- add support for vanilla JS (1a38f2f, 9fc4454, a8b1d1f, e123d82)
- add support for nested populate (28fe1e6)
- add support for WHERE LIKE clauses in SQL drivers via native regexps (2ad681e)
- add support for different naming of entity files (e.g.
book-tag.ts
orbook-tag.model.ts
) (8fe2816) - add basic transactions api to EM (88872ea)
- add NamingStrategy support (5dd2c65, e0d1e30)
- add persistAndFlush() and persistLater() methods (3b1ff7a)
- add possibility to disable auto-flush globally (39ae0ec)
- allow async methods in hooks (9722e75)
- allow passing array of entities via
entities
option (26093f9) - allow passing entity class instead of string name in EM methods (CRUD, getRepository, ...) (86acead)
- allow setting custom base repository globally (9ad19f2)
- allow usage without
BaseEntity
(af352f7) - allow using options object in EntityManager.find() (e5abcfd)
- implement cascade persist and remove (7836626)
- implement metadata caching to JSON files (d958e4d)
- improve
Collection
definition - only owner reference is now required (49224cc) - improve internal typings, enable noImplicitAny and strict null checks (1a5e32d, 271bffb)
- read m:1 referenced type via reflection, do not require its definition (5cbb29a)
- run all queries in transaction when flushing (8c233c0)
- validate each entity after discovery (06b432e)
- introduced new layer of drivers, require manual installation of underlying db driver
- refactor entity definition, remove
BaseEntity
, require merging withIEntity
interface and defining @PrimaryKey - change default key in Collection#getIdentifiers() to
id
as that one is required (1f16ef9) - remove identity map API from entity manager, use unit of work directly (b27326c)