📄️ 其他数据类型
除了模型基础指南中提到的最常见的数据类型之外,Sequelize 还提供了几种其他数据类型。
📄️ 在 AWS Lambda 中使用 sequelize
AWS Lambda 是一种无服务器计算服务,允许客户运行代码而无需担心底层服务器。如果未正确理解某些概念并且未使用适当的配置,则在 AWS Lambda 中使用 sequelize 可能会很棘手。本指南旨在阐明其中一些概念,以便库的用户可以为 AWS Lambda 正确配置 sequelize 并解决问题。
📄️ 连接池
如果你从单个进程连接到数据库,则应该仅创建一个 Sequelize 实例。Sequelize 将在初始化时设置一个连接池。这个连接池可以通过构造函数的 options 参数(使用 options.pool)来配置,如下例所示:
📄️ 限制和循环
在表之间添加约束意味着在使用 sequelize.sync 时,表必须按照一定的顺序在数据库中创建。如果 Task 引用了 User,则必须先创建 User 表,然后才能创建 Task 表。这有时会导致循环引用,其中 Sequelize 无法找到同步顺序。想象一下文档和版本的场景。一个文档可以有多个版本,并且为了方便起见,文档具有对其当前版本的引用。
📄️ 方言特定的事物
底层连接器库
📄️ 扩展数据类型
你尝试实现的类型很可能已包含在 DataTypes 中。如果未包含新的数据类型,本手册将展示如何自行编写。
📄️ 钩子
钩子(也称为生命周期事件)是在执行 sequelize 中的调用之前和之后调用的函数。例如,如果你希望在保存模型之前始终设置模型的值,则可以添加 beforeUpdate 钩子。
📄️ 索引
Sequelize 支持向将在 sequelize.sync() 创建的模型定义添加索引。
📄️ 使用旧表
虽然开箱即用的 Sequelize 似乎有点有态度,但通过定义(否则生成的)表和字段名称,可以轻松处理旧表并向前证明你的应用。
📄️ 法律声明
许可
📄️ 迁移
就像你使用 版本控制 系统(例如 Git)来管理源代码中的更改一样,你可以使用迁移来跟踪数据库的更改。通过迁移,你可以将现有数据库转移到另一个状态,反之亦然:这些状态转换保存在迁移文件中,这些文件描述了如何到达新状态以及如何恢复更改以返回到旧状态。
📄️ 命名策略
underscored 选项
📄️ 乐观锁
Sequelize 通过模型实例版本计数内置支持乐观锁定。
📄️ 查询接口
Sequelize 的实例使用称为查询接口的东西以与方言无关的方式与数据库进行通信。你在本手册中学到的大多数方法都是借助查询接口中的几种方法来实现的。
📄️ 读复制
Sequelize 支持 读复制,即当你想要执行 SELECT 查询时可以连接到多个服务器。进行读复制时,你指定一台或多台服务器充当只读副本,并指定一台服务器充当主写入器,该服务器处理所有写入和更新并将它们传播到副本(请注意,实际的复制过程不被处理) 通过 Sequelize,但应由数据库后端设置)。
📄️ 资源
附加组件和插件
📄️ 范围
范围用于帮助你重用代码。你可以定义常用的查询,指定 where、include、limit 等选项。
📄️ 子查询
假设你有两个模型 Post 和 Reaction,并且设置了一对多关系,因此一篇帖子有很多反应:
📄️ 事务
Sequelize 默认情况下不使用 transactions。但是,对于 Sequelize 的生产就绪使用,你绝对应该将 Sequelize 配置为使用事务。
📄️ TypeScript
我们正在努力让 Sequelize 在 TypeScript 中使用变得轻而易举。一些部分 仍在进行中。我们建议使用 sequelize-typescript 来弥补差距,直到我们的改进准备好发布。
📄️ 升级到 v6
Sequelize v6 是 v5 之后的下一个主要版本。以下是可帮助你升级的重大更改列表。