Sequelize 是一个 Node.js 中常用的 ORM 框架,它能够将关系型数据库和 Node.js 应用程序结合起来,使数据的操作变得更加方便。在某些场景下,我们需要连接多个数据库,比如将用户信息和订单信息分别存储在不同的数据库中,这时就需要使用 Sequelize 中的多数据库连接实现方案。
单数据库连接
在介绍多数据库连接之前,我们先来回顾一下 Sequelize 中单个数据库连接的实现方案。
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql' // 数据库类型
});在上面的代码中,我们通过 Sequelize 类来创建一个连接信息实例 sequelize,并指定了连接的数据库名称、用户名、密码、主机名以及数据库类型。接下来就可以使用这个实例来操作数据库了。
多数据库连接
当我们需要连接多个数据库时,可以通过创建多个连接信息实例来实现。比如我们想要连接两个数据库,一个是存储用户信息的数据库,一个是存储订单信息的数据库,可以通过如下方式进行配置:
-- -------------------- ---- ------- ----- - --------- - - --------------------- ----- ------ - --- -------------------- ------------------- ------------------- - ----- ------------ -------- ------- --- ----- ------- - --- --------------------- -------------------- -------------------- - ----- ------------ -------- ------- ---
在上面的代码中,我们使用 Sequelize 类分别创建了两个连接信息实例 userDB 和 orderDB,分别连接了两个不同的数据库。接下来的所有操作都需要指定使用哪个数据库进行处理,包括创建模型、同步数据等等。
指定数据库
在使用 Sequelize 操作数据库时,可以通过指定 Model 的 sequelize 属性来指定使用哪个数据库进行操作。比如:
-- -------------------- ---- -------
----- - ------ --------- - - ---------------------
----- ---- ------- ----- -
-- ---
-
----------
-
-- ---
--
-
---------- ------- -- -- ------ ---
---------- ------
-
--
----- ----- ------- ----- -
-- ---
-
-----------
-
-- ---
--
-
---------- -------- -- -- ------- ---
---------- -------
-
--在上面的代码中,我们使用 Model.init() 方法来创建模型,指定 Model 的 sequelize 属性来指定其所属的数据库。这样我们就可以根据不同的需求,使用不同的数据库进行操作了。
总结
通过上面的介绍,我们了解了在 Sequelize 中实现多数据库连接的方案,并且给出了详细的示例代码。使用多数据库连接可以方便地将不同业务之间的数据分离,提高系统的可维护性和可扩展性,是一个十分有用的技术点。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/64554ef8968c7c53b08e8e40