- fix(build): default null for multiple primary keys
- fix(util): improve performance of classToInvokable
- fix(model/update): propagate paranoid to individualHooks query #10369
- fix(association): use minimal select for hasAssociation
- fix(query-interface): reject with error for describeTable #10528
- fix(model): throw for invalid include type
- fix(types): additional options for db.query and add missing retry #10512
- fix(query): don't prepare options & sql for every retry
- feat: expose Sequelize.BaseError
- feat: upgrade to #10494
- feat(sqlite/query-generator): support restart identity for truncate-table
- feat(data-types): handle numbers passed as objects #10492
- feat(types): enabled string association
- feat(postgres): allow customizing client_min_messages #10448
- refactor(data-types): move to classes
- docs(legacy): fix N:M example #10509
- docs(migrations): use migrationStorageTableSchema
- docs(hooks): add documentation for connection hooks #10410
- docs(addIndex): concurrently option
- docs(model): fix typo #10405
- docs(usage): fix broken link on Basic Usage
- docs(package.json): add homepage #10372
5.0.0-beta.16
- feat: add typescript typings #10287
- fix(mysql): match with newlines in error message
- fix(update): skips update when nothing to update #10248
- fix(utils): flattenObject for null values
- fix(instance-validator): don't skip custom validators on null #9143
- docs(transaction): after save example
- docs(query-generator): typo #10277
- refactor(errors): restructure
- refactor(scope): documentation #9087 #10312
- refactor: cleanup association and spread use
5.0.0-beta.15
- fix(query-generator): fix addColumn create comment
- fix(sync): throw when no models defined #10175
- fix(association): enable eager load with include all(#9928)
- fix(sqlite): simplify connection error handling
- fix(model): prevent version number from being incremented as string #10217
- feat(dialect): mariadb
- docs(migrations): improve dialect options docs
- docs: fix favicon #10242
- docs(model.init):
attribute.column.validate
option - docs(bulk-create): update support information about ignoreDuplicates
- docs: explain custom/new data types #10170
- docs(migrations): Simplify CLI Call
- docs(migrations): added advanced skeleton example #10190
- docs: typo in associations.md
- refactor: reduce code complexity #10120
- refactor: optimize memoize use, misc cases
- chore(lint): enforce consistent spacing #10193
5.0.0-beta.14
- fix(query): correctly quote identifier for attributes (#9964) #10118
- feat(postgres): dyanmic oids
- fix(error): optimistic lock message #10068
- fix(package): update depd to version 2.0.0
- fix(model): validate virtual attribute (#9947) #10085
- fix(test): actually test get method with raw option
- fix(model): return deep cloned value for toJSON #10058
- fix(model): create instance with many-to-many association with extra column (#10034)
- fix(query-generator): fix bad property access #10056
- docs(upgrade-to-v4): typo
- docs(model-usage): order expression format #10061
- chore(package): update retry-as-promised to version 3.1.0
- refactor(scopes): just in time options conforming #9735
- refactor: use sequelize-pool for pooling
- refactor(*): cleanup code #10091
- refactor: use template strings
- refactor(query-generation): cleanup template usage #10047
5.0.0-beta.13
- fix: throw on undefined where parameters #10048
- fix(model): improve wrong alias error message
- feat(sqlite): CITEXT datatype #10036
- fix(postgres): remove if not exists and cascade from create/drop database queries
- fix(syntax): correct parentheses around union #10003
- feat(query-interface): createDatabase / dropDatabase support
- feat(postgres): CITEXT datatype #10024
- feat: pass uri query parameters to dialectOptions
- docs(query-generator): remove doc about where raw query #10017
- fix(query): handle undefined field on unique constraint error
- fix(model): sum returns zero when empty matching #9984
- feat(query-generator): add startsWith, endsWith and substring operators
- docs(sequelize): correct jsdoc annotations for authenticate #10002
- docs(query-interface): add bulkUpdate docs
- fix(tinyint): ignore params for TINYINT on postgres #9992
- fix(belongs-to): create now returns target model
- refactor(model): remove .all alias #9975
- perf: fix memory leak due to instance reference by isImmutable
- feat(sequelize): dialectModule option #9972
- fix(query): check valid warn message
- fix(model): check for own property when overriding association mixins #9953
- fix(create-table): support for uniqueKeys
- refactor(transaction): remove autocommit mode #9921
- feat(sequelize): getDatabaseName
- refactor: remove aliases #9933
- feat(belongsToMany): override unique constraint name with uniqueKey
- fix(postgres): properly disconnect connections #9911
- docs(instances.md): add section for restore()
- docs(hooks.md): add warning about memory limits of individual hooks #9881
- fix(package): update debug to version 4.0.0
- feat(postgres): support ignoreDuplicates with ON CONFLICT DO NOTHING #9883
5.0.0-beta.12
- fix(changeColumn): normalize attribute #9897
- feat(describeTable): support string length for mssql
- feat(describeTable): support autoIncrement for mysql #9894
- fix(sqlite): unable to reference foreignKey on primaryKey
- fix(postgres): enum with string COMMENT breaks query #9891
- fix(changeColumn): use engine defaults for foreign/unique key naming
- fix(transaction): fixed unhandled rejection when connection acquire timeout #9879
- fix(sqlite): close connection properly and cleanup files
- fix(model): incorrect error message for findCreateFind #9849
- fix(count): duplicate mapping of fields break scopes
- fix(model): bulkCreate should populate dataValues directly #9797
- fix(separate): don't propagate group to separated queries
- fix(scope): incorrect query generated when sequelize.fn used with scopes #9730
- fix(json): access included data with attributes
- (fix): pass offset in UNION'ed queries #9577
- fix(destroy): attributes updated in a beforeDestroy hook are now persisted on soft delete
- fix(addScope): only throw when defaultScope is defined #9703
5.0.0-beta.10
- fix(belongsToMany): association.add returns array of array of through records #9700
- feat: association hooks
- fix(bulkCreate): dont map dataValue to fields for individualHooks:true#9672
- feat(postgres): drop enum support
- feat(validation): improve validation for type#9660
- feat: allow querying sqlite_master table
- fix(hasOne.sourceKey): setup sourceKeyAttribute for joins #9658
- fix: throw when type of array values is not defined
- fix(query-generator): ignore undefined keys in query #9548
- fix(model): unable to override rejectOnEmpty
- fix(reload): instance.changed() remains unaffected #9615
- feat(model): column level comments
- docs: cleanup / correct jsdoc references #9702
5.0.0-beta.9
- fix(model): ignore undefined values in update payload #9587
- fix(mssql): set encrypt as default false for dialect options
- fix(model): ignore VIRTUAL/getters with attributes.exclude #9568
- feat(data-types): CIDR, INET, MACADDR support for Postgres
- fix: customize allowNull message with notNull validator #9549
5.0.0-beta.8
- feat(query-generator): Generate INSERT / UPDATE using bind parameters #9431
- performance: remove terraformer-wkt-parser dependency #9545
- fix(constructor): set username, password, database via options in addition to connection string
- fix(associations/belongs-to-many): catch EmptyResultError in set/add helpers #9535
- fix: sync with alter:true doesn't use field name
- fix(UnknownConstraintError): improper handling of error options #9547
5.0.0-beta.7
- fix(data-types/blob): only return null for mysql binary null #9441
- fix(errors): use standard .original rather than .__raw for actual error
- fix(connection-manager): mssql datatype parsing
- fix(query/removeConstraint): support schemas
- fix: use Buffer.from
- fix(transactions): return patched promise from sequelize.query #9473
5.0.0-beta.6
- fix(postgres/query-generator): syntax error with auto-increment SMALLINT #9406
- fix(postgres/range): inclusive property lost in JSON format
- fix(postgres/range): range bound not applied #8176
- fix(mssql): no unique constraint error thrown for PRIMARY case
- fix(query-generator): regexp operator escaping
- docs: various improvements and hinting update
- fix: inject foreignKey when using separate:true #9396
- fix(isSoftDeleted): just use deletedAt as flag
- feat(hasOne): sourceKey support with key validation
- fix(query-generator/deleteQuery): remove auto limit #9377
- feat(postgres): skip locked support
- fix(mssql): case sensitive operation fails because of uppercased system table references #9337
5.0.0-beta.4
- change(model): setDataValue should not mark null to null as changed #9347
- change(mysql/connection-manager): do not execute SET time_zone query if keepDefaultTimezone config is true
- feat(transactions): Add afterCommit hooks for transactions #9287
5.0.0-beta.3
- change(model): new options.underscored implementation #9304
- fix(mssql): duplicate order generated with limit offset
- fix(scope): do not assign scope on eagerly loaded associations #9292
- change(bulkCreate): only support non-empty array as updateOnDuplicate
5.0.0-beta.2
- change(operators): Symbol operators now enabled by default, removed deprecation warning
- fix(model): don't add LIMIT in findOne() queries on unique key #9248
- fix(model): use schema when generating foreign keys
5.0.0-beta.1
- fix(postgres): reserved words support
- fix(findOrCreate): warn and handle unknown attributes in defaults
- fix(query-generator): 1-to-many join in subQuery filter missing where clause #9228
5.0.0-beta
- now removed, use
Model.rawAttributes
#5320 - mode will now treat any record with
deletedAt
as deleted