Sequelize ORM 实践:如何使用 Sequelize-cli 进行数据库自动生成?

阅读时长 9 分钟读完

引言

对于前端开发人员而言,操作关系型数据库和进行 CRUD 操作往往是不可避免的任务。Sequelize 是一款基于 Node.js 的 ORM 框架,它提供了一套强大的 API 用于操作 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server 等关系型数据库,用于简化代码,减少繁琐的 SQL 串接。与传统的 ORM 框架相比,Sequelize 有很高的可定制性和灵活性,以适应各种复杂的业务场景。

Sequelize-cli 是 Sequelize 的命令行工具,用于方便地管理数据库。本文将详细介绍如何使用 Sequelize-cli 进行数据库自动生成,并结合示例代码进行讲解。

准备工作

  • 安装 Node.js 环境
  • 安装 MySQL 数据库
  • 安装 Sequelize 和 Sequelize-cli

初始化项目

创建一个新的项目,并使用 Sequelize-cli 初始化数据库配置

执行完初始化之后,会在项目根目录下生成四个目录:

  • config: 用于存放数据库配置文件
  • migrations: 用于存放数据库迁移脚本
  • models: 用于存放模型定义文件
  • seeders: 用于存放数据库种子数据

创建模型

使用 Sequelize-cli 创建一个新的模型

执行完上述命令之后,会在 models 目录下生成一个新的名为 User.js 的文件,该文件定义了一个名为 User 的模型。

-- -------------------- ---- -------
---- --------
----- -
  -----
- - ---------------------
-------------- - ----------- ---------- -- -
  ----- ---- ------- ----- -

    ------ ----------------- -
      -- ------ ----------- ----
    -
  --
  -----------
    ------ -----------------
    --------- ----------------
  -- -
    ----------
    ---------- -------
  ---
  ------ -----
--
展开代码

模型文件中包含以下内容:

  • 引入了 sequelizeModel
  • 使用 Model.init 方法定义了 User 模型的属性和配置项
  • 定义了 static associate 方法,用于配置模型之间的关联关系,暂时为空

数据库迁移

在创建完模型之后,需要执行数据库迁移,使得数据库中包含对应的表结构。

使用 Sequelize-cli 创建一个新的迁移脚本

执行完上述命令之后,会在 migrations 目录下生成一个新的名为 xxxxxx-create-users.js 的文件,该文件定义了一个名为 create-users 的迁移脚本。

-- -------------------- ---- -------
---- --------

-------------- - -
  --- ----- ---------------- ---------- -- -
    ----- ----------------------------------- -
      --- -
        ---------- ------
        -------------- -----
        ----------- -----
        ----- -----------------
      --
      ------ -
        ----- ----------------
      --
      --------- -
        ----- ----------------
      --
      ---------- -
        ---------- ------
        ----- --------------
      --
      ---------- -
        ---------- ------
        ----- --------------
      -
    ---
  --

  ----- ----- ---------------- ---------- -- -
    ----- ----------------------------------
  -
--
展开代码

迁移脚本中包含以下内容:

  • 使用 queryInterface.createTable 方法定义了一个名为 Users 的表,包含对应的字段和类型
  • 使用 queryInterface.dropTable 方法定义了撤销迁移的操作

执行数据库迁移

执行完上述命令之后,可以在数据库中看到名为 Users 的表已经被成功创建。

模型操作

使用模型进行数据库操作前,需要先对模型进行配置。

使用 models/index.js 文件来配置所有模型,其中包含了数据库的连接信息和每个模型的定义。在 models/index.js 中添加以下代码:

-- -------------------- ---- -------
---- --------

----- -- - --------------
----- ---- - ----------------
----- --------- - ---------------------
----- -------- - --------------------------
----- --- - -------------------- -- --------------
----- ------ - ----------------- - -------------------------------
----- -- - ---

--- ----------
-- ------------------------- -
  --------- - --- ----------------------------------------------- --------
- ---- -
  --------- - --- -------------------------- ---------------- ---------------- --------
-

--
  -----------------------
  ------------ -- -
    ------ ------------------ --- -- -- ----- --- --------- -- --------------- --- -------
  --
  ------------- -- -
    ----- ----- - ---------------------------- ----------------- ---------------------
    -------------- - ------
  ---

--------------------------------- -- -
  -- ------------------------- -
    ----------------------------
  -
---

------------ - ----------
------------ - ----------

-------------- - ---
展开代码

models/index.js 文件中,使用 readdirSync 方法读取 models 目录下的所有文件,将每个模型导入到 db 对象中,并通过 associate 方法建立模型之间的关联关系。最后,将 sequelizeSequelize 实例导出。

在进行模型操作前,需要先使用 require 方法引入 models/index.js 文件,从而获得所有模型的实例。在 app.js 文件中添加以下代码。

使用模型进行数据库操作。以下为一些基本操作的示例代码。

增加记录

使用 create 方法创建一个新的 User 记录,并打印出数据库返回的 JSON 数据。此时,数据库中将会增加一条 emailtest@example.com 的新记录。

查找记录

使用 findOne 方法查找符合特定条件的一条记录,并打印出数据库返回的 JSON 数据。

修改记录

-- -------------------- ---- -------
--------------------
  --------- --------
-- -
  ------ -
    ------ ------------------
  -
---------- -- -
  ---------------------
---
展开代码

使用 update 方法修改符合特定条件的记录,并在操作成功后打印提示信息。此时,数据库中与 emailtest@example.com 相关的记录中的 password 字段将会被改为 654321

删除记录

使用 destroy 方法删除符合特定条件的记录,并在操作成功后打印提示信息。此时,数据库中与 emailtest@example.com 相关的记录将被删除。

结语

Sequelize-cli 是 Sequelize 操作数据库的重要工具,它大大简化了数据库操作的流程,为开发者节省了时间和精力。本文简要介绍了如何使用 Sequelize-cli 进行数据库自动生成,并结合示例代码进行详细讲解,希望能为读者提供指导和帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c6ff7bcc0f7239cde844ac

纠错
反馈

纠错反馈