You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The dependency sequelize was updated from 4.43.0 to 5.1.0.
This version is not covered by your current version range.
If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.
Release Notes for v5
Breaking Changes
Support for Node 6 and up
Sequelize v5 will only support Node 6 and up #9015
Secure Operators
With v4 you started to get a deprecation warning String based operators are now deprecated. Also concept of operators was introduced. These operators are Symbols which prevent hash injection attacks.
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.
Attributes
Model.attributes now removed, use Model.rawAttributes. #5320
Note: Please don't confuse this with options.attributes, they are still valid
Paranoid Mode
With v5 if deletedAt is set, record will be considered as deleted. paranoid option will only use deletedAt as flag. #8496
Model.bulkCreate
updateOnDuplicate option which used to accept boolean and array, now only accepts non-empty array of attributes. #9288
Underscored Mode
Implementation of Model.options.underscored is changed. You can find full specifications here.
Main outline
Both underscoredAll and underscored options are merged into single underscored option
All attributes are now generated with camelcase naming by default. With the underscored option set to true, the field option for attributes will be set as underscored version of attribute name.
underscored will control all attributes including timestamps, version and foreign keys. It will not affect any attribute which already specifies the field option.
/** * In v4 you can do this */ console.log(sequelize.Op===Sequelize.Op) // logs true console.log(sequelize.UniqueConstraintError===Sequelize.UniqueConstraintError) // logs true
/** * In v5 aliases has been removed from Sequelize prototype * You should use Sequelize directly to access Op, Errors etc */
Model.findAll({
where: {
[Sequelize.Op.and]: [ // Dont use sequelize.Op, use Sequelize.Op instead
{
name:"Abc"
},
{
age: {
[Sequelize.Op.gte]:18
}
}
]
}
}).catch(Sequelize.ConnectionError, () => { console.error('Something wrong with connection?');
});
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
Sequelize now use parameterized queries for all INSERT / UPDATE operations (except UPSERT). They provide better protection against SQL Injection attack.
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The dependency sequelize was updated from
4.43.0to5.1.0.This version is not covered by your current version range.
If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.
Release Notes for v5
Breaking Changes
Support for Node 6 and up
Sequelize v5 will only support Node 6 and up #9015
Secure Operators
With v4 you started to get a deprecation warning
String based operators are now deprecated. Also concept of operators was introduced. These operators are Symbols which prevent hash injection attacks.http://docs.sequelizejs.com/manual/querying.html#operators-security
With v5
operatorsAliases, but that will give you deprecation warning.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-poolwhich is a modernized fork ofgeneric-pool@2.5. You no longer need to callsequelize.closeto shutdown pool, this helps with lambda executions. #8468Model
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
nullandallowNullistrue(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, whereallowNullistrue, and make sure all these validators behave correctly when the value isnull. See #9143.Attributes
Model.attributesnow removed, useModel.rawAttributes. #5320Note: Please don't confuse this with
options.attributes, they are still validParanoid Mode
With v5 if
deletedAtis set, record will be considered as deleted.paranoidoption will only usedeletedAtas flag. #8496Model.bulkCreate
updateOnDuplicateoption which used to accept boolean and array, now only accepts non-empty array of attributes. #9288Underscored Mode
Implementation of
Model.options.underscoredis changed. You can find full specifications here.Main outline
underscoredAllandunderscoredoptions are merged into singleunderscoredoptionunderscoredoption set totrue, thefieldoption for attributes will be set as underscored version of attribute name.underscoredwill control all attributes including timestamps, version and foreign keys. It will not affect any attribute which already specifies thefieldoption.#9304
Removed aliases
Many model based aliases has been removed #9372
Datatypes
Range
Now supports only one standard format
[{ value: 1, inclusive: true }, { value: 20, inclusive: false }]#9364Case insensitive text
Added support for
CITEXTfor Postgres and SQLiteRemoved
NONEtype has been removed, useVIRTUALinsteadHooks
Removed aliases
Hooks aliases has been removed #9372
Sequelize
Removed aliases
Prototype references for many constants, objects and classes has been removed #9372
Query Interface
changeColumnno longer generates constraint with_idxsuffix. Now Sequelize does not specify any name for constraints thus defaulting to database engine naming. This aligns behavior ofsync,createTableandchangeColumn.Others
ValidationErrorItemnow holds reference to original error in theoriginalproperty, rather than the__rawproperty.3.1.0, which use any-promise. This module repeat allsequelize.queryoperations. You can configureany-promiseto usebluebirdfor better performance on Node 4 or 6undefinedkeys inwhereoptions, In past versionsundefinedwas converted tonull.Dialect Specific
MSSQL
tedious >= 6.0.0. OlddialectOptionshas to be updated to match their new format. Please refer to tedious documentation. An example of newdialectOptionsis given belowdialectOptions: { authentication: { domain: 'my-domain' }, options: { requestTimeout: 60000, cryptoCredentialsDetails: { ciphers: "RC4-MD5" } } }MySQL
mysql2 >= 1.5.2for prepared statementsMariaDB
dialect: 'mariadb'is now supported withmariadbpackagePackages
generic-poolsequelize-poolChangelog
5.0.0-beta.17
5.0.0-beta.16
5.0.0-beta.15
attribute.column.validateoption #102375.0.0-beta.14
5.0.0-beta.13
5.0.0-beta.12
5.0.0-beta.11
5.0.0-beta.10
5.0.0-beta.9
5.0.0-beta.8
5.0.0-beta.7
5.0.0-beta.6
5.0.0-beta.5
5.0.0-beta.4
5.0.0-beta.3
5.0.0-beta.2
5.0.0-beta.1
5.0.0-beta
Model.attributesnow removed, useModel.rawAttributes#5320paranoidmode will now treat any record withdeletedAtas deleted #8496Commits
The new version differs by 316 commits ahead by 316, behind by 28.
0a9b8a65.1.06d84ceddocs: fix styling issue with long commentscf5aeeachore: v5 release (#10544)1275de0docs: remove extra entriesd6d9d815.0.0-beta.17bc6c133docs: v5.0.0-beta.174478d74chore: strict linting for code and jsdocs (#10535)f862e6bfix(util): improve performance of classToInvokable (#10534)a26193achore: enforce stricter linting (#10532)786b19bfix(build): default null for multiple primary keysae7d4b9feat: expose Sequelize.BaseErrore03a537fix(tests): missing clock instanced7241f7fix(tests): path for instance tests69b85c3refactor: instance tests0c68590feat(sqlite/query-generator): support restart identity for truncate-table (#10522)There are 250 commits in total.
See the full diff
FAQ and help
There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.
Your Greenkeeper bot 🌴