sequelize 5.0中文文档 5.0版本中升级,替换,移除的内容 (四) - node.js语言最好用的orm
文章目录
前言
最近把代码进行升级,原来旧版本的Sequelize 也一下升级的V5.0版本,
为了学习使用方便,统一把 Sequelize 5.0 更新,移除,替换,升级的内容标记一下.
对node的支持
Sequelize v5 将仅支持 Node 6 以及更高版本
安全的运算符
在 v4 中,就开始收到弃用警告 String based operators are now deprecated (基于字符串的运算符现在已弃用).
同时也介绍了运算符的概念.这些运算符是一些防止散列注入攻击的符号.
在V5 版本中,运算符默认启用.
你仍然可以通过在 operatorsAliases 中传递一个运算符映射来使用字符串运算符,但这会产生弃用警告.
Op.$raw 已被移除
Typescript支持
Sequelize 现在正式支持官方类型
连接池优化
对于 v5 Sequelize现在使用 sequelize-pool,它是 generic-pool@2.5 的现代化分支.
你不再需要调用 sequelize.close 来关闭池,这有助于 lambda 执行.
属性
Model.attributes 现在已被移除, 请使用 Model.rawAttributes
偏执模式
对于 v5 如果设置了 deletedAt, 该数据将被视为已删除. paranoid 选项只会使用 deletedAt 作为标志
Model.bulkCreate
updateOnDuplicate 选项用于接受布尔值和数组,现在只接受非空的数组属性
下划线模式
Model.options.underscored 的实现方式被改变了
- underscoredAll 和 underscored 选项都合并为一个 underscored 选项
- 现在,所有属性都默认使用 camelcase 命名生成. 将 underscored选项设置为 true,属性的 field 选项将被设置为属性名称的下划线版本.
- underscored 将控制所有属性,包括时间戳,版本和外键. 它不会影响任何已经指定 field 选项的属性.
删除的别名
v5 删除 | 官方替代 |
---|---|
insertOrUpdate | upsert |
find | findOne |
findAndCount | findAndCountAll |
findOrInitialize | findOrBuild |
updateAttributes | update |
findById, findByPrimary | findByPk |
all | findAll |
hook | addHook |
数据类型
范畴
现在只支持一种标准格式 [{ value: 1, inclusive: true }, { value: 20, inclusive: false }]
不区分大小写的文本
为 Postgres 和 SQLite 添加了对 CITEXT 的支持
已删除
NONE 类型已被删除,请使用 VIRTUAL
Hooks
删除的别名
Rv5 删除 | 官方替代 |
---|---|
[after,before]BulkDelete | [after,before]BulkDestroy |
[after,before]Delete | [after,before]Destroy |
Sequelize类
删除的别名
v5 删除 | 官方替代 |
---|---|
Sequelize.prototype.Utils | Sequelize.Utils |
Sequelize.prototype.Promise | Sequelize.Promise |
Sequelize.prototype.TableHints | Sequelize.TableHints |
Sequelize.prototype.Op | Sequelize.Op |
Sequelize.prototype.Transaction | Sequelize.Transaction |
Sequelize.prototype.Model | Sequelize.Model |
Sequelize.prototype.Deferrable | Sequelize.Deferrable |
Sequelize.prototype.Error | Sequelize.Error |
Sequelize.prototype[error] | Sequelize[error] |
beforeConnection | beforeConnect |
查询接口
changeColumn不再使用_idx后缀生成约束. 现在Sequelize没有为约束指定任何名称,因此默认为数据库引擎命名.
这对齐了sync,createTable和changeColumn的行为.
addIndex 别名的参数别名已被删除,请改用以下内容.
indexName => name
indicesType => type
indexType/method => using
出自:sequelize 5.0中文文档 5.0版本中升级,替换,移除的内容 (四) - node.js语言最好用的orm