0.2.28 (2020-09-30)
- FindManyOptions order in parameter typing is important (51608ae)
- lock Typescript to 3.6.0 (#6810) (7f7e4d5), closes #6809 #6805
0.2.27 (2020-09-29)
- add dummy for FileLogger, ConnectionOptionsReaders, and update gulpfile (#6763) (180fbd4)
- backport FindOperator return types (#6717) (2b37808)
- coerce port to number in ConnectionOptionsEnvReader (#6786) (55fbb69), closes #6781
- count() method for multiple primary keys for cockroachdb (#6745) (dfe8259)
- enforce name argument of migration generate command (#2719) (#6690) (dfcb2db), closes #4798 #4805 #4798 #4805
- ensure browser builds don't include any non-browser modules (#6743) (c714867), closes #6739
- hdb-pool is not namespaced under @sap (#6700) (9583430), closes #6697
- migration:generate issue with onUpdate using mariadb 10.4 (#6714) (6e28322)
- prevent multiple
release
listeners in PostgresQueryRunner (#6708) (208cf6b), closes #6699 - prevent wrong returned entity in ReturningResultsEntityUpdator (#6440) (c1c8e88)
- resolve issues ora-00972:identifier is too long (#6751) (b55a417), closes #5067 #5067
- sql.js v1.2+ don't support undefined parameters (#6698) (ea59b8d), closes #5720
- add option to pass postgres server notices to client logger (#6215) (5084e47), closes #2216
- backport SQLite Busy handler & WAL mode enable (#6588) (7a52f18)
- Beautify generated SQL for migrations (#6685) (370442c), closes #4415
- create EntityTarget and use instead of EntitySchema / ObjectType / etc (#6701) (8b68f40)
- Revert "fix: properly override database url properties (#6247)" (#6802) (45b980c), closes #6247 #6802
0.2.26 (2020-09-10)
- @JoinTable does not respect inverseJoinColumns referenced column width (#6444) (f642a9e), closes #6442
- add missing schema for OracleDriver (#6673) (8b8bc35)
- change InsertQueryBuilder.values() with an empty array into a no-op (#6584) (9d2df28), closes #3111
- Child entities not being saved correctly with cascade actions (#6219) (16a2d80)
- correctly parse connection URI with query params (#6390) (54a3a15), closes #6389
- decorators should implement the official TypeScript interface (#6398) (c23c888), closes #5922
- DeepPartial with any and {[k: string]: any} (#6581) (8d90d40), closes #6580 #6580
- exporting missing load event (#6396) (c6336aa)
- get correct insert ids for multiple entities inserted (#6668) (ef2011d), closes #2131 #5973 #2131
- getPendingMigrations isn't properly working (#6372) (7c0da1c)
- handle 'error' events from pool connection (#6262) (ae3cf0e)
- insert IN(null) instead of IN() when In([]) empty array for mysqlDriver (#6237) (6f6bdbd)
- make only a single SELECT to get inserted default and generated values of multiple entities (#6669) (4fc4a1b), closes #6266 #6266
- Migration issues with scale & precision in sqlite/sql.js (#6638) (0397e44), closes #6636
- mysql migration: make sure the indices sql which left-join be the same database (#6426) (906d97f)
- pass
ids_
to alias builder to prevent length overflow (#6624) (cf3ad62) - pass formatOptions to Data API Client, fix extensions (#6404) (9abab82), closes #1
- Query builder makes query with joins, without limit for inherited entities (#6402) (874e573), closes #6399
- remove unnecessary optionality from Raw operator's columnAlias argument (#6321) (0d99b46)
- resolve missing decorators on shim (#6354) (8e2d97d), closes #6093
- revert fix handle URL objects as column field values (#6145) (e073e02)
- SqlQueryRunner.hasColumn was not working (#6146) (a595fed), closes #5718
- support multiple
JoinColumn
s in EntitySchema (#6397) (298a3b9), closes #5444 - Unnecessary migrations for fulltext indices (#6634) (c81b405), closes #6633
- unnecessary migrations for unsigned numeric types (#6632) (7ddaf23), closes #2943 /github.com/typeorm/typeorm/pull/6632#pullrequestreview-480932808
- update query deep partial TypeScript definition (#6085) (23110d1)
- add AWS configurationOptions to aurora-data-api-pg connector (#6106) (203f51d)
- add better-sqlite3 driver (#6224) (2241451)
- add postgres connection timeout option (#6160) (0072149)
- FileLogger accepts custom file path (#6642) (c99ba40), closes #4410
- implement postgres ltree (#6480) (43a7386), closes #4193
- support absolute paths in migrationsDir for the CLI (#6660) (2b5f139)
- support cjs extension for ormconfig (#6285) (6eeb03a)
0.2.25 (2020-05-19)
- 'in' clause case for ORACLE (#5345) (8977365)
- calling EntityManager.insert() with an empty array of entities (#5745) (f8c52f3), closes #5734 #5734 #5734
- columns with transformer should be normalized for update (#5700) (4ef6b65), closes #2703
- escape column comment in mysql driver (#6056) (5fc802d)
- expo sqlite driver disconnect() (#6027) (61d59ca)
- HANA - SSL options, column delta detection mechanism (#5938) (2fd0a8a)
- handle URL objects as column field values (#5771) (50a0641), closes #5762 #5762
- insert and update query builder to handle mssql geometry column correctly (#5947) (87cc6f4)
- migrations being generated for FK even if there are no changes (#5869) (416e419)
- multiple assignments to same column on UPDATE #2651 (#5598) (334e17e)
- prevent TypeError when calling bind function with sql.js 1.2.X (#5789) (c6cbddc)
- prototype pollution issue (#6096) (db9d0fa)
- provide a default empty array for parameters. (#5677) (9e8a8cf)
- redundant undefined parameters are not generated in migration files anymore (#5690) (d5cde49)
- replacing instanceof Array checks to Array.isArray because instanceof Array seems to be problematic on some platforms (#5606) (b99b4ad)
- respect database from connection urls (#5640) (ed75d59), closes #2096
- sha.js import (#5728) (8c3f48a)
- Unknown fields are stripped from WHERE clause (issue #3416) (#5603) (215f106)
- update dependency mkdirp to 1.x (#5748) (edeb561)
- update Entity decorator return type to ClassDecorator (#5776) (7d8a1ca)
- use an empty string enum as the type of a primary key column (#6063) (8e0d817), closes #3874
- use correct typings for the result of
getUpsertedIds()
(#5878) (2ab88c2) - wrong table name parameter when not using default schema (#5801) (327144a)
- add FOR NO KEY UPDATE lock mode for postgresql (#5971) (360122f)
- add name option to view column (#5962) (3cfcc50), closes #5708
- Add soft remove and recover methods to entity (#5854) (9d2b8e0)
- added support for NOWAIT & SKIP LOCKED in Postgres (#5927) (2c90e1c)
- Aurora Data API - Postgres Support (#5651) (e584297)
- aurora Data API - Support for AWS configuration options through aurora driver (#5754) (1829f96)
- create-column, update-column, version-column column kinds now support user specified values (#5867) (5a2eb30), closes #3271
- names of extra columns for specific tree types moved to NamingStrategy (#5737) (ec3be41)
- PG allow providing a function for password (#5673) (265d1ae)
- update cli migration up and down from any to void (#5630) (76e165d)
- UpdateResult returns affected rows in mysql (#5628) (17f2fff), closes #1308
- .synchronize() drops json column on mariadb (#5391) (e3c78c1), closes typeorm/typeorm#3636
- (base-entity) set create return type to T[] (#5400) (ceff897)
- add the enableArithAbort option to the sql server connection option typings (#5526) (d19dbc6)
- bug when default value in mssql were not updated if previous default was already set (9fc8329)
- change OrmUtils.mergeDeep to not merge RegExp objects (#5182) (0f51836), closes #3534
- fk on update should not use attributes of on delete (2baa934)
- load typeorm-aurora-data-api-driver correctly when using webpack (#4788) (#5302) (9da0d34)
- not to make typeorm generate alter query on geometry column when that column was not changed (#5525) (ee57557)
- Oracle sql expression for date column (#5305) (40e9d3a), closes #4452 #4452
- refactoring instance of with Array.isArray() (#5539) (1e1595e)
- Return NULL when normalize default null value (#5517) (1826b75), closes #5509
- SAP HANA driver fixes (#5445) (87b161f)
- update foreign keys when table name changes (#5482) (7157cb3)
- use OUTPUT INTO on SqlServer for returning columns (#5361) (6bac3ca), closes #5160 #5160
- use sha.js instead of crypto for hash calculation (#5270) (b380a7f)
- Add basic support for custom cache providers (#5309) (6c6bde7)
- add fulltext parser option (#5380) (dd73395)
0.2.22 (2019-12-23)
- hash aliases to avoid conflicts (#5227) (edc8e6d)
- implement driver options for NativeScript (#5217) (3e58426)
- SAP Hana support (#5246) (ec90341)
- speed up id search in buildChildrenEntityTree (#5202) (2e628c3)
- aliases for very long relation names may be replaced with hashed strings. Fix: avoid collisions by using longest possible hash. Retain more entropy by not using only 8 characters of hashed aliases.
0.2.21 (2019-12-05)
- allow expireAfterSeconds 0 in Index decorator (close #5004) (#5005) (d05467c)
- do not mutate connection options (#5078) (1047989)
- mysql driver query streaming (#5036) (aff2f56)
- remove consrc usage (postgres,cockroachdb) (#4333) (ce7cb16), closes #4332
- repo for app-root-path in lock file (#5052) (f0fd192)
- resolve MySQL unique index check when bigNumberStrings is false (#4822) (d205574), closes #2737
- resolve sorting bug for several mongo vesions with typeorm migration (#5121) (cb771a1), closes #5115
- throwing error on duplicate migration names #4701 (#4704) (3e4dc9f)
- unescaped column name in order clause of "migrations" (#5108) (c0c8566)
- upgrade app-root-path (#5023) (7f87f0c)
- add distinct on() support for postgres (#4954) (1293065)
- add migrations transaction option to connection options (#5147) (fb60688), closes #4629 #4629
- asynchronous ormconfig support (#5048) (f9fdaee), closes #4149
- export Migration Execution API from main package (fixes #4880) (#4892) (8f4f908)
- support spatial types of MySQL 8+ (#4794) (231dadf), closes #3702
0.2.20 (2019-10-18)
- ensure distinct property is respected cloning query builder (#4843) (ea17094), closes #4842
- aurora: apply mysql query fixes to aurora (#4779) (ee61c51)
- allow EntitySchema to be passed to EntityRepository (#4884) (652a20e)
- better timestamp comparison (#4769) (0a13e6a)
- broken database option when using replication, changes introduced by #4753 (#4826) (df5479b)
- check for version of MariaDB before extracting COLUMN_DEFAULT (#4783) (c30b485)
- connection Reuse is broken in a Lambda environment: (#4804) (7962036)
- FindOptionUtils export (#4746) (4a62b1c), closes #4745
- loading of aurora-data-api driver (#4765) (fbb8947)
- postgres: postgres query runner to create materialized view (#4877) (d744966)
- migrations run in reverse order for mongodb (#4702) (2f27581)
- mongodb Cursor.forEach types (#4759) (fccbe3e)
- Slack invite URL (#4836) (149af26)
- add name to MigrationInterface (fixes #3933 and fixes #2549) (#4873) (4a73fde)
- add new transaction mode to wrap each migration in transaction (#4629) (848fb1f)
- add option to Column to specify the complete enumName (#4824) (d967180)
- add support for cube array for PostgreSQL (#4848) (154a441)
- implements Sqlite 'WITHOUT ROWID' table modifier (#4688) (c1342ad), closes #3330
0.2.19 (2019-09-13)
- "database" option error in driver when use "url" option for connection (690e6f5)
- "hstore injection" & properly handle NULL, empty string, backslashes & quotes in hstore key/value pairs (#4720) (3abe5b9)
- add SaveOptions and RemoveOptions into ActiveRecord (#4318) (a6d7ba2)
- apostrophe in Postgres enum strings breaks query (#4631) (445c740)
- change PrimaryColumn decorator to clone passed options (#4571) (3cf470d), closes #4570
- createQueryBuilder relation remove works only if using ID (#2632) (#4734) (1d73a90)
- resolve issue with conversion string to simple-json (#4476) (d1594f5), closes #4440
- sqlite connections don't ignore the schema property (#4599) (d8f1c81)
- the excessive stack depth comparing types
FindConditions<?>
andFindConditions<?>
problem (#4470) (7a0beed) - views generating broken Migrations (#4726) (c52b3d2), closes #4123
- add
set
datatype support for MySQL/MariaDB (#4538) (19e2179), closes #2779 - add materialized View support for Postgres (#4478) (dacac83), closes #4317 #3996
- add mongodb
useUnifiedTopology
config parameter (#4684) (92e4270) - add multi-dimensional cube support for PostgreSQL (#4378) (b6d6278)
- add options to input init config for sql.js (#4560) (5c311ed)
- add postgres pool error handler (#4474) (a925be9)
- add referenced table metadata to NamingStrategy to resolve foreign key name (#4274) (0094f61), closes #3847 #1355
- add support for ON CONFLICT for cockroach (#4518) (db8074a), closes #4513
- Added support for DISTINCT queries (#4109) (39a8e34)
- Aurora Data API (#4375) (c321562)
- export additional schema builder classes (#4325) (e589fda)
- log files loaded from glob patterns (#4346) (e12479e), closes #4162
- UpdateResult returns affected rows in postgresql (#4432) (7808bba), closes #1308
- fixed loadRelationCountAndMap when entities' primary keys are strings (#3946)
- fixed QueryExpressionMap not cloning all values correctly (#4156)
- fixed transform embeddeds with no columns but with nested embeddeds (mongodb) (#4131)
- fixed the getMany() result being droped randomly bug when using the buffer as primary key. (#4220)
- adds
typeorm migration:show
command (#4173) - deprecate column
readonly
option in favor ofupdate
andinsert
options (#4035) - support sql.js v1.0 (#4104)
- added support for
orUpdate
in SQLlite (#4097) - added support for
dirty_read
(NOLOCK) in SQLServer (#4133) - extend afterLoad() subscriber interface to take LoadEvent (issue #4185)
- relation decorators (e.g.
@OneToMany
) now also acceptstring
instead oftypeFunction
, which prevents circular dependency issues in the frontend/browser (issue #4190) - added support for metadata reflection in typeorm-class-transformer-shim.js (issue #4219)
- added
sqlJsConfig
to input config when initializing sql.js (issue #4559)
- fixed transform embeddeds with boolean values (mongodb) (#3900)
- fixed issue with schema inheritance in STI pattern (#3957)
- revert changes from #3814 (#3828)
- fix performance issue when inserting into raw tables with QueryBuilder (#3931)
- sqlite date hydration is susceptible to corruption (#3949)
- fixed mongodb uniques, support 3 ways to define uniques (#3986)
- fixed mongodb TTL index (#4044)
- added deferrable options for foreign keys (postgres) (#2191)
- added View entity implementation (#1024). Read more at View entities
- added multiple value transformer support (#4007)
- removed unused parameters from
insert
,update
,delete
methods (#3888) - fixed: migration generator produces duplicated changes (#1960)
- fixed: unique constraint not created on embedded entity field (#3142)
- fixed: FK columns have wrong length when PrimaryGeneratedColumn('uuid') is used (#3604)
- fixed: column option unique sqlite error (#3803)
- fixed: 'uuid' in PrimaryGeneratedColumn causes Many-to-Many Relationship to Fail (#3151)
- fixed: sync enums on schema sync (#3694)
- fixed: changes in enum type is not reflected when generating migration (in definition file) (#3244)
- fixed: migration will keep create and drop indexes if index name is the same across tables (#3379)
- added
lock
option inFindOptions
- fixed bug in
connection.dropDatabase
method (#1414) - fixed "deep relations" not loaded/mapped due to the built-in max length of Postgres (#3118)
- updated all dependencies
- fixed types issue from #3725
- removed sql-function-support (
() =>
syntax) in parameters to prevent security considerations - fix sync schema issue with postgres enum in case capital letters in entity name (#3536)
- added
uuidExtension
option to Postgres connection options, which allows TypeORM to use the newerpgcrypto
extension to generate UUIDs
- fixed migration issue with postgres numeric enum type - change queries are not generated if enum is not modified (#3587)
- fixed mongodb entity listeners in optional embeddeds (#3450)
- fixes returning invalid delete result
- reverted lazy loading properties not enumerable feature to fix related bugs
- added CockroachDB support
- added browser entry point to
package.json
(3583) - replaced backend-only drivers by dummy driver in browser builds
- added
useLocalForage
option to Sql.js connection options, which enables asynchronous load and save operations of the datatbase from the indexedDB (#3554) - added simple-enum column type (#1414)
- fixed undefined object id field in case property name is
_id
(3517) - allow to use mongodb index options in
Index
decorator (#3592) - fixed entity embeddeds indices in mongodb (#3585)
- fixed json/jsonb column data types comparison (#3496)
- fixed increment/decrement value of embedded entity (#3182)
- fixed missing call
transformer.from()
in case column is NULL (#3395) - fixed signatures of
update
/insert
methods, somefind*
methods in repositories, entity managers, BaseEntity and QueryBuilders - handle embedded documents through multiple levels in mongodb (#3551)
- fixed hanging connections in
mssql
driver (#3327)
- Injection 2nd parameter(options) of constructor to
ioredis/cluster
is now possible(#3538)
- fixed mongodb entity listeners and subscribers (#1527)
- fixed connection options builder - paramters parsed from url are assigned on top of options (#3442)
- fixed issue with logical operator precedence in
QueryBuilder
whereInIds
(#2103) - fixed missing
isolationLevel
inConnection.transaction()
method (#3363) - fixed broken findOne method with custom join column name
- fixed issue with uuid in mysql (#3374)
- fixed missing export of
Exclusion
decorator - fixed ignored extra options in mongodb driver (#3403, #1741)
- fixed signature of root
getRepository
function to acceptEntitySchema<Entity>
(#3402) - fixed false undefined connection options passed into mongodb client (#3366)
- fixed ER_DUP_FIELDNAME with simple find (#3350)
- added
tslib
to reduce package size (#3457, #3458) - queries are simplified in
findByIds
andwhereInIds
for simple entities with single primary key (#3431) - added
ioredis
andioredis-cluster
cache support (#3289,#3364) - added
LessThanOrEqual
andMoreThanOrEqual
find options (#3373) - improve support of string, numeric and heterogeneous enums in postgres and mysql (#3414)
- default value of enum array in postgres is now possible define as typescript array (#3414)
@Column({
type: "enum",
enum: StringEnum,
array: true,
default: [StringEnum.ADMIN]
})
stringEnums: StringEnum[];
UpdateQueryBuilder
now throw error if update values are not provided or unknown property is passed into.set()
method (#2849,#3324)
- hot fix for mysql schema sync bug
- allowed caching options from environment variable (#3321)
- more accurate type for postgres ssl parameters
- added support for
ON UPDATE CASCADE
relations for mysql repository.save
returns union type- added reuse of lazy relationships
- added ability to disable prefixes for embedded columns
- migrations can be tested
- migration run returns array of successful migrations
- added debug ENV option
- added support for postgres exclusion constraints
- bug fixes
- documentation updates
- fixed issue with mysql primary generated uuid ER_TOO_LONG_KEY (#1139)
UpdateEvent
now returns with containsupdatedColumns
andupdatedRelations
- added support for specifying isolation levels in transactions
- added SQLCipher connection option for sqlite
- added driver to support Expo platform for sqlite
- added support for nativescript
- bug fixes
- documentation updates
- added support for rowversion type for mssql (#2198)
- fixed wrong aggregate and count methods signature in mongodb
- added support for enum arrays in postgres
- fixed issue with lazy relations (#1953)
- fixed issue with migration file generator using a wrong class name (#2070)
- fixed issue with unhandled promise rejection warning on postgres connection (#2067)
- fixed bug with relation id loader queries not working with self-referencing relations
- fixed issues with zerofill and unsigned options not available in column options (#2049)
- fixed issue with lazy relation loader (#2029)
- fixed issue with closure table not properly escaped when using custom schema (#2043)
- fixed issue #2053
- fixed bug with selecting default values after persistence when initialized properties defined
- fixed bug with find operators used on relational columns (#2031)
- fixed bug with DEFAULT as functions in mssql (#1991)
- fixing bugs with STI
- fixed bug in mysql schema synchronization
- fixed bug with STI
- fixed bug with lazy relations inside transactions
- completely refactored, improved and optimized persistence process and performance.
- removed cascade remove functionality, refactored how cascades are working.
- removed
cascadeRemove
option from relation options. - replaced
cascadeAll
withcascade: true
syntax from relation options. - replaced
cascadeInsert
withcascade: ["insert"]
syntax from relation options. - replaced
cascadeUpdate
withcascade: ["update"]
syntax from relation options. - now when one-to-one or many-to-one relation is loaded and its not set (set to null) ORM returns you entity with relation set to
null
instead ofundefined property
as before. - now relation id can be set directly to relation, e.g.
Post { @ManyToOne(type => Tag) tag: Tag|number }
withpost.tag = 1
usage. - now you can disable persistence on any relation by setting
@OneToMany(type => Post, post => tag, { persistence: false })
. This can dramatically improve entity save performance. loadAllRelationIds
method ofQueryBuilder
now accepts list of relation paths that needs to be loaded, alsodisableMixedMap
option is now by default set to false, but you can enable it via new method parameteroptions
- now
returning
andoutput
statements ofInsertQueryBuilder
support array of columns as argument - now when many-to-many and one-to-many relation set to
null
all items from that relation are removed, just like it would be set to empty array - fixed issues with relation update from one-to-one non-owner side
- now version column is updated on the database level, not by ORM anymore
- now created date and update date columns is set on the database level, not by ORM anymore (e.g. using
CURRENT_TIMESTAMP
as a default value) - now
InsertQueryBuilder
,UpdateQueryBuilder
andDeleteQueryBuilder
automatically update entities after execution. This only happens if real entity objects are passed. Some databases (like mysql and sqlite) requires a separate query to perform this operation. If you want to disable this behavior usequeryBuilder.updateEntity(false)
method. This feature is convenient for users who have uuid, create/update date, version columns or columns with DEFAULT value set. - now
InsertQueryBuilder
,UpdateQueryBuilder
andDeleteQueryBuilder
call subscribers and listeners. You can disable this behavior by settingqueryBuilder.callListeners(false)
method. Repository
andEntityManager
method.findOneById
is deprecated and will be removed in next 0.3.0 version. UsefindOne(id)
method instead now.InsertQueryBuilder
now returnsInsertResult
which contains extended information and metadata about runned queryUpdateQueryBuilder
now returnsUpdateResult
which contains extended information and metadata about runned queryDeleteQueryBuilder
now returnsDeleteResult
which contains extended information and metadata about runned query- now insert / update / delete queries built with QueryBuilder can be wrapped into a transaction using
useTransaction(true)
method of the QueryBuilder. insert
,update
anddelete
methods ofQueryRunner
now useInsertQueryRunner
,UpdateQueryRunner
andDeleteQueryRunner
inside- removed deprecated
removeById
,removeByIds
methods - removed
deleteById
method - usedelete(id)
method instead now - removed
updateById
method - useupdate(id)
method instead now - changed
snakeCase
utility - check table names after upgrading - added ability to disable transaction in
save
andremove
operations - added ability to disable listeners and subscribers in
save
andremove
operations - added ability to save and remove objects in chunks
- added ability to disable entity reloading after insertion and updation
- class table inheritance functionality has been completely dropped
- single table inheritance functionality has been fixed
@SingleEntityChild
has been renamed to@ChildEntity
@DiscriminatorValue
has been removed, instead parameter in@ChildEntity
must be used, e.g.@ChildEntity("value")
@DiscriminatorColumn
decorator has been removed, use@TableInheritance
options instead nowskipSync
in entity options has been renamed tosynchronize
. Now if it set to false schema synchronization for the entity will be disabled. By default its true.- now array initializations for relations are forbidden and ORM throws an error if there are entities with initialized relation arrays.
@ClosureEntity
decorator has been removed. Instead@Entity
+@Tree("closure-table")
must be used- added support for nested set and materialized path tree hierarchy patterns
- breaking change on how array parameters work in queries - now instead of (:param) new syntax must be used (:...param). This fixed various issues on how real arrays must work
- changed the way how entity schemas are created (now more type-safe), now interface EntitySchema is a class
- added
@Unique
decorator. Accepts custom unique constraint name and columns to be unique. Used only on as composite unique constraint, on table level. E.g.@Unique("uq_id_name", ["id", "name"])
- added
@Check
decorator. Accepts custom check constraint name and expression. Used only on as composite check constraint, on table level. E.g.@Check("chk_name", "name <> 'asd'")
- fixed
Oracle
issues, now it will be fully maintained as other drivers - implemented migrations functionality in all drivers
- CLI commands changed from
migrations:create
,migrations:generate
,migrations:revert
andmigrations:run
tomigration:create
,migration:generate
,migration:revert
andmigration:run
- changed the way how migrations work (more info in #1315). Now migration table contains
id
column with auto-generated keys, you need to re-create migrations table or add new column manually. - entity schemas syntax was changed
- dropped support for WebSql and SystemJS
@Index
decorator now acceptssynchronize
option. This option need to avoid deleting custom indices which is not created by TypeORM- new flag in relation options was introduced:
{ persistence: false }
. You can use it to prevent any extra queries for relations checks - added support for
UNSIGNED
andZEROFILL
column attributes in MySQL - added support for generated columns in MySQL
- added support for
ON UPDATE
column option in MySQL - added
SPATIAL
andFULLTEXT
index options in MySQL - added
hstore
andenum
column types support in Postgres - added range types support in Postgres
- TypeORM now uses
{ "supportBigNumbers": true, "bigNumberStrings": true }
options by default fornode-mysql
- Integer data types in MySQL now accepts
width
option instead oflength
- junction tables now have
onDelete: "CASCADE"
attribute on their foreign keys ancestor
anddescendant
columns in ClosureTable marked as primary keys- unique index now will be created for the join columns in
ManyToOne
andOneToOne
relations
- fixed bug in InsertQueryBuilder
- fixed timestamp issues
- fixed issue with entity order by applied to update query builder
- security and bug fixes
- security and bug fixes
- optimized hydration performance (#1672)
- added simple-json column type (#1448)
- fixed transform behaviour for timestamp columns (#1140)
- fixed issue with multi-level relations loading (#1504)
- EntitySubscriber now fires events on subclass entity (#1369)
- fixed error with entity schema validator being async (#1448)
- postgres extensions now gracefully handled when user does not have rights to use them (#1407)
sqljs
driver now enforces FK integrity by default (same behavior assqlite
)- fixed issue that broke browser support in 0.1.8 because of the debug package (#1344)
- fixed bug with sqlite and mysql schema synchronization when uuid column is used (#1332)
- New DebugLogger (#1302)
- fixed issue with primary relations being nullable by default - now they are not nullable always
- fixed issue with multiple databases support when tables with same name are used across multiple databases
- fixed bug with migrations execution in mssql (#1254)
- added support for more complex ordering in paginated results (#1259)
- MSSQL users are required to add "order by" for skip/offset operations since mssql does not support OFFSET/LIMIT statement without order by applied
- fixed issue when relation query builder methods execute operations with empty arrays (#1241)
- Webpack can now be used for node projects and not only for browser projects. To use TypeORM in Ionic with minimal changes checkout the ionic-example for the needed changes. To use webpack for non-Ionic browser webpack projects, the needed configuration can be found in the docs (#1280)
- added support for loading sub-relations in via find options (#1270)
- added support for indices and listeners in embeddeds
- added support for
ON CONFLICT
keyword - fixed bug with query builder where lazy relations are loaded multiple times when using
leftJoinAndSelect
(#996) - fixed bug in all sqlite based drivers that generated wrong uuid columns (#1128 and #1161)
- fixed bug where
findByIds
would return values with an empty array (#1118) - fixed bug in MigrationExecutor that didn't release created query builder (#1201)
- fixed bug in mysql driver that generated wrong query when using skip (#1099)
- added option to create query builder from repository without alias(#1084)
- fixed bug that made column option "select" unusable (#1110)
- fixed bug that generated mongodb projects what don't work (#1119)
- added support for
sql.js
. To use it you just need to installnpm i sql.js
and usesqljs
as driver type (#894). - added explicit require() statements for drivers (#1143)
- fixed bug where wrong query is generated with multiple primary keys (#1146)
- fixed bug for oracle driver where connect method was wrong (#1177)
- sqlite now supports relative database file paths (#798 and #799)
- fixed bug with not properly working
update
method (#1037, #1042) - fixed bug with replication support (#1035)
- fixed bug with wrong embedded column names being generated (#969)
- added support for caching in respositories (#1057)
- added support for the
citext
column type for postgres (#1075)
- added support for
pg-native
for postgres (#975). To use it you just need to installnpm i pg-native
and it will be picked up automatically. - now Find Options support
-1
and1
forDESC
andASC
values. This is better user experience for MongoDB users. - now inheritances in embeddeds are supported (#966).
isArray: boolean
inColumnOptions
is deprecated. Usearray: boolean
instead.- deprecated
removeById
method, now usedeleteById
method instead. - added
insert
anddelete
methods into repository and entity manager. - fixed multiple issues with
update
,updateById
andremoveById
methods in repository and entity manager. Now they do not usesave
andremove
methods anymore - instead they are using QueryBuilder to build and execute their queries. - now
save
method can accept partial entities. - removed opencollective dependency.
- fixed issues with bulk entity insertions.
- find* methods now can find by embed conditions.
- fixed issues with multiple schema support, added option to
@JoinTable
to support schema and database. - multiple small bugfixes.
Table
,AbstractTable
,ClassTableChild
,ClosureTable
,EmbeddableTable
,SingleTableChild
deprecated decorators were removed. UseEntity
,ClassEntityChild
,ClosureEntity
,SingleEntityChild
decorators instead.EntityManager#create
,Repository#create
,EntityManager#preload
,Repository#preload
,EntityManager#merge
,Repository#merge
methods now acceptDeepPartial<Entity>
instead ofObject
.EntityManager#merge
,Repository#merge
methods first argument is now an entity where to need to merge all given entity-like objects.- changed
find*
repository methods. Now conditions arePartial<Entity>
type. - removed
FindOptions
interface and introduced two new interfaces:FindOneOptions
andFindManyOptions
- each for its ownfindOne*
orfind*
methods. - dropped out some of options of
FindOptions
. UseQueryBuilder
instead. However, added few new options as well. - deprecated method
addParameters
has been removed fromQueryBuilder
. UsesetParameters
instead. - removed
setMaxResults
,setFirstResult
methods inQueryBuilder
. Usetake
andskip
methods instead. - renamed
entityManager
tomanager
inConnection
,AbstractRepository
and event objects.entityManager
property was removed. - renamed
persist
tosave
inEntityManager
andRepository
objects.persist
method was removed. SpecificRepository
is removed. Use relational query builder functionality instead.transaction
method has been removed fromRepository
. UseEntityManager#transaction
method instead.- custom repositories do not support container anymore.
- controller / subscriber / migrations from options tsconfig now appended with a project root directory
- removed naming strategy decorator, naming strategy by name functionality. Now naming strategy should be registered by passing naming strategy instance directly.
driver
section in connection options now deprecated. All settings should go directly to connection options root.- removed
fromTable
from theQueryBuilder
. Now use regularfrom
to select from tables. - removed
usePool
option from the connection options. Pooling now is always enabled. - connection options interface has changed and now each platform has its own set of connection options.
storage
in sqlite options has been renamed todatabase
.- env variable names for connection were changed (
TYPEORM_DRIVER_TYPE
has been renamed toTYPEORM_CONNECTION
, some other renaming). More env variable names you can find inConnectionOptionsEnvReader
class. - some api changes in
ConnectionManager
andcreateConnection
/createConnections
methods of typeorm main entrypoint. simple_array
column type now is calledsimple-array
- some column types were removed. Now orm uses column types of underlying database.
- now
number
type in column definitions (like@Column() likes: number
) maps tointeger
instead ofdouble
. This is more programmatic design. If you need to store float-pointing values - define a type explicitly. fixedLength
in column options has been removed. Now actual column types can be used, e.g.@Column("char")
or@Column("varchar")
.timezone
option has been removed from column options. Now corresponding database types can be used instead.localTimezone
has been removed from the column options.skipSchemaSync
in entity options has been renamed toskipSync
.setLimit
andsetOffset
inQueryBuilder
were renamed intolimit
andoffset
.nativeInterface
has been removed from a driver interface and implementations.- now typeorm works with the latest version of mssql (version 4).
- fixed how orm creates default values for SqlServer - now it creates constraints for it as well.
- migrations interface has changed - now
up
anddown
accept onlyQueryRunner
. To useConnection
andEntityManager
use properties ofQueryRunner
, e.g.queryRunner.connection
andqueryRunner.manager
. - now
update
method inQueryBuilder
acceptsPartial<Entity>
and property names used in update map are column property names and they are automatically mapped to column names. SpecificRepository
has been removed. Instead newRelationQueryBuilder
was introduced.getEntitiesAndRawResults
ofQueryBuilder
has been renamed togetRawAndEntities
.- in mssql all constraints are now generated using table name in their names - this is fixes issues with duplicate constraint names.
- now when object is loaded from the database all its columns with null values will be set into entity properties as null. Also after saving entity with unset properties that will be stored as nulls - their (properties) values will be set to null.
- create and update dates in entities now use date with fractional seconds.
@PrimaryGeneratedColumn
decorator now accept generation strategy as first argument (default isincrement
), instead of column type. Column type must be passed in options object, e.g.@PrimaryGeneratedColumn({ type: "bigint"})
.@PrimaryColumn
now does not acceptgenerated
parameter in options. Use@Generated
or@PrimaryGeneratedColumn
decorators instead.- Logger interface has changed. Custom logger supply mechanism has changed.
- Now
logging
options in connection options is simple "true", or "all", or list of logging modes can be supplied. - removed
driver
section in connection options. Define options right in the connection options section. Embedded
decorator is deprecated now. use@Column(type => SomeEmbedded)
instead.schemaName
in connection options is removed. Useschema
instead.TYPEORM_AUTO_SCHEMA_SYNC
env variable is now calledTYPEORM_SYNCHRONIZE
.schemaSync
method inConnection
has been renamed tosynchronize
.getEntityManager
has been deprecated. UsegetManager
instead.@TransactionEntityManager
is now called@TransactionManager
now.EmbeddableEntity
,Embedded
,AbstractEntity
decorators has been removed. There is no need to useEmbeddableEntity
andAbstractEntity
decorators at all - entity will work as expected without them. Instead of@Embedded(type => X)
decorator now@Column(type => X)
must be used instead.tablesPrefix
,autoSchemaSync
,autoMigrationsRun
,dropSchemaOnConnection
options were removed. UseentityPrefix
,synchronize
,migrationsRun
,dropSchema
options instead.- removed
persist
method from theRepository
andEntityManager
. Usesave
method instead. - removed
getEntityManager
fromtypeorm
namespace. UsegetManager
method instead. - refactored how query runner works, removed query runner provider
- renamed
TableSchema
intoTable
- renamed
ColumnSchema
intoTableColumn
- renamed
ForeignKeySchema
intoTableForeignKey
- renamed
IndexSchema
intoTableIndex
- renamed
PrimaryKeySchema
intoTablePrimaryKey
- added
mongodb
support. - entity now can be saved partially within
update
method. - added prefix support to embeddeds.
- now embeddeds inside other embeddeds are supported.
- now relations are supported inside embeds.
- now relations for multiple primary keys are generated properly.
- now ormconfig is read from
.env
,.js
,.json
,.yml
,.xml
formats. - all database-specific types are supported now.
- now migrations generation in mysql is supported. Use
typeorm migrations:generate
command. getGeneratedQuery
was renamed togetQuery
inQueryBuilder
.getSqlWithParameters
was renamed togetSqlAndParameters
inQueryBuilder
.- sql queries are highlighted in console.
- added
@Generated
decorator. It can acceptstrategy
option with valuesincrement
anduuid
. Default isincrement
. It always generates value for column, except when column defined asnullable
and user setsnull
value in to column. - added logging of log-running requests.
- added replication support.
- added custom table schema and database support in
Postgres
,Mysql
andSql Server
drivers. - multiple bug fixes.
- added ActiveRecord support (by extending BaseEntity) class
Connection
how hascreateQueryRunner
that can be used to control database connection and its transaction stateQueryBuilder
is abstract now and all different kinds of query builders were created for different query types -SelectQueryBuilder
,UpdateQueryBuilder
,InsertQueryBuilder
andDeleteQueryBuilder
with individual method available.
- fixes #341 - issue when trying to create a
OneToOne
relation withreferencedColumnName
where the relation is not between primary keys
- added
ObjectLiteral
andObjectType
into main exports - fixed issue fixes #345.
- fixed issue with migration not saving into the database correctly. Note its a breaking change if you have run migrations before and have records in the database table, make sure to apply corresponding changes. More info in #360 issue.
- fixed bug with indices from columns are not being inherited from parent entity #242
- added support of UUID primary columns (thanks @seanski)
- added
count
method to repository and entity manager (thanks @aequasi)
- added complete babel support
- added
clear
method toRepository
andEntityManager
which allows to truncate entity table - exported
EntityRepository
intypeorm/index
- fixed issue with migration generation in #239 (thanks to @Tobias4872)
- fixed issue with using extra options with SqlServer #236 (thanks to @jmai00)
- fixed issue with non-pooled connections #234 (thanks to @benny-medflyt)
- fixed issues: #242, #240, #204, #219, #233, #234
- added custom entity repositories support
- merged typeorm-browser and typeorm libraries into single package
- added
@Transaction
decorator - added exports to
typeorm/index
for naming strategies - added shims for browsers using typeorm in frontend models, also added shim to use typeorm with class-transformer library on the frontend
- fixed issue when socketPath could not be used with mysql driver (thanks @johncoffee)
- all table decorators are renamed to
Entity
(Table
=>Entity
,AbstractTable
=>AbstractEntity
,ClassTableChild
=>ClassEntityChild
,ClosureTable
=>ClosureEntity
,EmbeddableTable
=>EmbeddableEntity
,SingleTableChild
=>SingleEntityChild
). This change is required because upcoming versions of orm will work not only with tables, but also with documents and other database-specific "tables". Previous decorator names are deprecated and will be removed in the future. - added custom repositories support. Example in samples directory.
- cascade remove options has been removed from
@ManyToMany
,@OneToMany
decorators. Also cascade remove is not possible from two sides of@OneToOne
relationship now. - fixed issues with subscribers and transactions
- typeorm now has translation in chinese (thanks @brookshi)
- added
schemaName
support for postgres database #152 (thanks @mingyang91) - fixed bug when new column was'nt added properly in sqlite #157
- added ability to set different types of values for DEFAULT value of the column #150
- added ability to use zero, false and empty string values as DEFAULT values in #189 (thanks to @Luke265)
- fixed bug with junction tables persistence (thanks @Luke265)
- fixed bug regexp in
QueryBuilder
(thanks @netnexus) - fixed issues #202, #203 (thanks to @mingyang91)
- fixed issues #159, #181, #176, #192, #191, #190, #179, #177, #175, #174, #150, #159, #173, #195, #151
- added
JSONB
support for Postgres in #126 (thanks @CreepGin@CreepGin) - fixed in in sqlite query runner in #141 (thanks @marcinwadon)
- added shortcut exports for table schema classes in #135 (thanks @eduardoweiland)
- fixed bugs with single table inheritance in #132 (thanks @eduardoweiland)
- fixed issue with
TIME
column in #134 (thanks @cserron) - fixed issue with relation id in #138 (thanks @mingyang91)
- fixed bug when URL for pg was parsed incorrectly #114 (thanks @mingyang91)
- fixed bug when embedded is not being updated
- metadata storage now in global variable
- entities are being loaded in migrations and can be used throw the entity manager or their repositories
- migrations now accept
EntityMetadata
which can be used within one transaction - fixed issue with migration running on windows #140
- fixed bug with with Class Table Inheritance #144
- changed
getScalarMany
togetRawMany
inQueryBuilder
- changed
getScalarOne
togetRawOne
inQueryBuilder
- added migrations support
- fixed problem when
order by
is used withlimit
- fixed problem when
decorators-shim.d.ts
exist and does not allow to import decorators (treats like they exist in global) - fixed Sql Server driver bugs
- completely refactored persistence mechanism:
- added experimental support of
{ nullable: true }
in relations - cascade operations should work better now
- optimized all queries
- entities with recursive entities should be persisted correctly now
- added experimental support of
- now
undefined
properties are skipped in the persistence operation, as well asundefined
relations. - added platforms abstractions to allow typeorm to work on multiple platforms
- added experimental support of typeorm in the browser
- breaking changes in
QueryBuilder
:getSingleResult()
renamed togetOne()
getResults()
renamed togetMany()
getResultsAndCount()
renamed togetManyAndCount()
- in the innerJoin*/leftJoin* methods now no need to specify
ON
- in the innerJoin*/leftJoin* methods no longer supports parameters, use
addParameters
orsetParameter
instead. setParameters
is now works just likeaddParameters
(because previous behaviour confused users),addParameters
now is deprecatedgetOne
returnsPromise<Entity|undefined>
- breaking changes in
Repository
andEntityManager
:findOne
and .findOneByIdnow return
Promise<Entity|undefined>instead of
Promise`
- now typeorm is compiled into
ES5
instead ofES6
- this allows to run it on older versions of node.js - fixed multiple issues with dates and utc-related stuff
- multiple bugfixes
- lot of API refactorings
- complete support TypeScript 2
- optimized schema creation
- command line tools
- multiple drivers support
- multiple bugfixes
- first stable version, works with TypeScript 1.x