• 首页
  • javascript
  • sequelize 5.0中文文档 5.0版本中升级,替换,移除的内容 (四) - node.js语言最好用的orm

sequelize 5.0中文文档 5.0版本中升级,替换,移除的内容 (四) - node.js语言最好用的orm

image.png


文章目录



前言

最近把代码进行升级,原来旧版本的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 删除官方替代
insertOrUpdateupsert
findfindOne
findAndCountfindAndCountAll
findOrInitializefindOrBuild
updateAttributesupdate
findById, findByPrimaryfindByPk
allfindAll
hookaddHook

数据类型


范畴

现在只支持一种标准格式 [{ 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.UtilsSequelize.Utils
Sequelize.prototype.PromiseSequelize.Promise
Sequelize.prototype.TableHintsSequelize.TableHints
Sequelize.prototype.OpSequelize.Op
Sequelize.prototype.TransactionSequelize.Transaction
Sequelize.prototype.ModelSequelize.Model
Sequelize.prototype.DeferrableSequelize.Deferrable
Sequelize.prototype.ErrorSequelize.Error
Sequelize.prototype[error]Sequelize[error]
beforeConnectionbeforeConnect

查询接口

changeColumn不再使用_idx后缀生成约束. 现在Sequelize没有为约束指定任何名称,因此默认为数据库引擎命名.
这对齐了sync,createTable和changeColumn的行为.
addIndex 别名的参数别名已被删除,请改用以下内容.
indexName => name
indicesType => type
indexType/method => using

出自:sequelize 5.0中文文档 5.0版本中升级,替换,移除的内容 (四) - node.js语言最好用的orm

回到顶部