Skip to content

Latest commit

 

History

History
1378 lines (804 loc) · 129 KB

CHANGELOG.md

File metadata and controls

1378 lines (804 loc) · 129 KB

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

4.3.4 (2020-12-11)

Bug Fixes

  • 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

Features

  • core: auto-discover base entities (33bda07)

4.3.3 (2020-12-04)

Bug Fixes

  • cli: print both entities and entitiesTs 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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

Features

  • core: allow calling Collection.set() on not initialized collections (1d0bb85), closes #1048
  • core: allow extending embeddables (#1051) (89d3250), closes #1049
  • core: allow mapping null to undefined 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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

Features

  • core: add MetadataStorage.clear() to clear the global storage (c6fa0f4), closes #936

4.2.1 (2020-10-20)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • postgres: escape question marks in parameters (813e3cd), closes #920

4.1.0 (2020-10-12)

Bug Fixes

  • 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

Features

  • core: add EntityRepository.merge() method (f459334), closes #868

Performance Improvements

  • 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)

Bug Fixes

  • core: do not store original data for references (0a9ef65), closes #864

Features

  • core: add groupBy, having and schema to CountOptions (d3c3858)

Performance Improvements

  • core: use batch inserts in UoW (postgres & mongodb) (#865) (54ad928), closes #732

4.0.6 (2020-09-22)

Bug Fixes

  • 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)

Bug Fixes

  • core: fix merging results from QB to existing entity (218098a)
  • schema: defer creating of composite indexes + implement diffing (f57b457), closes #850

Features

  • mapping: make @Unique and @Index (optionally) typesafe (afe6801), closes #850

4.0.4 (2020-09-19)

Bug Fixes

  • 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)

Features

  • core: allow setting loading strategy globally (e4378ee), closes #834
  • migrations: allow providing transaction context (1089c86), closes #851

Performance Improvements

  • move reference to metadata to entity prototype + more improvements (#843) (f71e4c2), closes #732

Reverts

  • Revert "refactor: return target from decorator definition" (e021617)

4.0.3 (2020-09-15)

Bug Fixes

  • core: make a copy of custom type values to allow array diffing (6ae72ae)

Features

  • core: allow using AsyncLocalStorage for request context (47cd9a5), closes #575

Performance Improvements

  • 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)

Bug Fixes

  • core: simplify Collection type args (1fb6cec)

Features

  • entity-generator: do not use ts-morph (478a7bb)
  • migrations: do not use ts-morph in migrations (9800dc1)

4.0.1 (2020-09-10)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • 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 to MikroORM.init() (43a9ce9)
  • core: add having to FindOptions (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 and onUpdate (#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 to MongoEntityManager (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 to SqlEntityManager (e389d40)
  • sql: add groupBy to FindOptions (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)

Performance Improvements

  • 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

BREAKING CHANGES

Please see the upgrading guide.

3.6.15 (2020-06-05)

Bug Fixes

  • 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)

Bug Fixes

  • 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 vs joinColumn 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • core: do not propagate remove action to m:1 with orphan removal (94c71c8), closes #482
  • core: export AbstractSqlConnection from mikro-orm (d38cdde), closes #483
  • metadata: fix validation of inversedBy/mappedBy (d2c3ce6)

Features

  • mongo: add support for mongodb text indexes (#481) (75f20f6)
  • mongo: add support for nullable unique indexes (#485) (e8424a0)

3.6.6 (2020-04-12)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • cli: respect baseDir in migrations.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 to prop.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)

Bug Fixes

  • 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)

Bug Fixes

  • core: fix explicit usage of joinColumn option (bcf2546), closes #425

Features

  • 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 and dropTables options to schema generator (2d2c73d), closes #416

3.5.2 (2020-03-23)

Bug Fixes

  • mapping: respect columnType option (e96d63d), closes #420
  • sql: simplify transactions handling with knex (9a5763b)

3.5.1 (2020-03-22)

Bug Fixes

  • mysql: add timezone config option and fix TZ docs (e0a5597), closes #418
  • typings: simplify FilterQuery type, remove UnionOfArrays (d919eec)

3.5.0 (2020-03-21)

Bug Fixes

  • 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

Features

  • 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)

Bug Fixes

  • build: ignore MongoDB data directory (#394) (fea6df0)
  • postgres: ignore other than the current schema (c05bec1), closes #386

3.4.0 (2020-03-08)

Features

3.3.6 (2020-03-06)

Bug Fixes

  • core: add tableName alias for collection (9d19263)
  • core: make dbName optional (infer from clientUrl) (30427c5)
  • mysql: normalize false to 0 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • mapping: allow enum keys with names matching their value (28315d0), closes #359

3.3.0 (2020-02-25)

Bug Fixes

  • 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)

Features

  • core: add loadItems() method to Collection (#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)

Bug Fixes

  • schema: fix @Index and @Unique decorators on entity level (c6e3646), closes #344

3.2.0 (2020-02-19)

Bug Fixes

  • 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)

Features

3.1.1 (2020-02-15)

Bug Fixes

  • 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)

Bug Fixes

  • core: do not reset collections too early (ad6337e), closes #312

Features

  • core: add em.populate() helper method (26d2f33), closes #310
  • core: add Reference.getEntity() and Reference.getProperty() (05dc5ce), closes #304

3.0.1 (2020-01-23)

Bug Fixes

  • 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)

Bug Fixes

  • 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

Features

  • 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 to FindOptions (#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() in NamingStrategy (#88) (b6700b6), closes #15
  • mapping: auto-wire missing references from owner to inverse side (fc61be9), closes #149
  • metadata: add ReflectMetadataProvider, rename the ts-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 of stringify (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

Performance Improvements

  • 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)

BREAKING CHANGES

Please see the upgrading guide.

2.7.9 (2019-10-10)

Bug Fixes

  • 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)

Bug Fixes

  • validation: allow undefined in nullable entity properties (b5eafc3), closes #132

2.7.7 (2019-09-01)

Bug Fixes

  • mapping: allow defining hooks on base entities (6938398), closes #104

2.7.6 (2019-08-15)

Bug Fixes

  • metadata: add support for tslib (5ffcb24), closes #100

2.7.5 (2019-08-08)

Features

  • core: propagate changes in collections to both inverse/owner sides (c10f8e8)

2.7.4 (2019-07-23)

Bug Fixes

  • core: normalize path to entity to unix style separators (c5933c7)

2.7.3 (2019-07-02)

Bug Fixes

  • 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)

Bug Fixes

  • sql: support IS NULL queries in QueryBuilder (fd6edd5)

2.7.1 (2019-06-12)

Bug Fixes

  • core: allow 1 and -1 in QueryOrderMap to maintain BC (3024386)

2.7.0 (2019-06-11)

Features

  • 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 to ASC/DESC/asc/desc (5c18fda)

2.6.0 (2019-05-27)

Features

  • 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)

Performance Improvements

  • context: use Domain API instead of async_hooks (#58)

2.5.0 (2019-05-13)

Bug Fixes

  • 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)

Features

  • core: persist all managed entities automatically when flushing (dbf6b43), closes #51
  • metadata: validate missing base entities (03d61a8)

2.4.0 (2019-04-27)

Bug Fixes

  • query-builder: do not ignore nested and group conditions (ab64d5a)
  • query-builder: support calling andWhere()/orWhere() without previous where() (516e863)

Features

  • query-builder: add groupBy() and having() to QueryBuilder (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)

Bug Fixes

  • 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)

Bug Fixes

  • core: do not override loaded entity state when loading it again (79fabcb)

2.3.0 (2019-04-24)

Bug Fixes

  • deps: update dependency ts-morph to v2 (#47)
  • sql: support custom field names in select clause of query builder (b10c67f)

Features

  • core: implement orphan removal (#48), closes #36
  • core: support lookup by array instead of explicit $in condition (4f600d6)
  • query-builder: add support for join() and leftJoin() (#46), closes #45

2.2.2 (2019-04-18)

Bug Fixes

  • serializing: allow serializing deeply nested structures (04c5190)

2.2.1 (2019-04-18)

Bug Fixes

  • 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)

Features

  • core: allow forking EM without clearing identity map (5e4603c)

2.2.0 (2019-04-14)

Bug Fixes

  • core: ignore rest parameter in entity.toJSON() (147de7d)
  • core: merge only objects in assign() with mergeObjects flag (749ca6f)
  • core: use serialized PK in Collection.getIdentifiers() (a24b6bc)
  • mongo: include missing query condition in logger in deleteMany() (bf280b4)

Features

  • core: add @OneToOne decorator (#42), closes #37
  • core: add createQueryBuilder() to EntityRepository 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 support FindOneOptions (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() and orWhere() to QueryBuilder (d1a1127)

2.1.1 (2019-04-05)

Features

  • core: add support for merging object properties in IEntity.assign() (3b401ed), closes #35

2.1.0 (2019-04-04)

Bug Fixes

  • 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)

Features

  • 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 and Cascade.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)

Bug Fixes

  • 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)

Bug Fixes

  • require path in JS entity schema to fix support of entities array (de63f35)

2.0.1 (2019-03-10)

Bug Fixes

  • reorganize imports to fix circular dependency in built JS code (bf23587)

Features

  • introduce Configuration object (5916435)

2.0.0 (2019-03-09)

Bug Fixes

  • 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)

Features

  • 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 or book-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)

BREAKING CHANGES