Skip to content

Latest commit

 

History

History
653 lines (390 loc) · 57.2 KB

CHANGELOG.md

File metadata and controls

653 lines (390 loc) · 57.2 KB

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