You can still use string operators by passing an operators map in operatorsAliases, but that will give you deprecation warning.

Op.$raw is removed

Typescript Support

Sequelize now ship official typings #10287. You can consider migrating away from external typings which may get out of sync.

Pooling

With v5 Sequelize now use sequelize-pool which is a modernized fork of generic-pool@2.5. You no longer need to call sequelize.close to shutdown pool, this helps with lambda executions. #8468

Model

Validators

Custom validators defined per attribute (as opposed to the custom validators defined in the model's options) now run when the attribute's value is null and allowNull is true (while previously they didn't run and the validation succeeded immediately). To avoid problems when upgrading, please check all your custom validators defined per attribute, where allowNull is true, and make sure all these validators behave correctly when the value is null. See #9143.

Query Interface

changeColumn no longer generates constraint with _idx suffix. Now Sequelize does not specify any name for constraints thus defaulting to database engine naming. This aligns behavior of sync, createTable and changeColumn.

Others

ValidationErrorItem now holds reference to original error in the original property, rather than the __raw property.

retry-as-promised has been updated to 3.1.0, which use any-promise. This module repeat all sequelize.query operations. You can configure any-promise to use bluebird for better performance on Node 4 or 6

Sequelize will throw for all undefined keys in where options, In past versions undefined was converted to null.

Dialect Specific

MSSQL

Sequelize now works with tedious >= 6.0.0. Old dialectOptions has to be updated to match their new format. Please refer to tedious documentation. An example of new dialectOptions is given below