• 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