Sequelize 中 Schema 操作的方法与技巧

阅读时长 7 分钟读完

Sequelize 是一个基于 Node.js 的 ORM(对象关系映射)库,可以方便地将 JavaScript 对象映射到关系型数据库上,并且支持多种数据库系统如 MySQL、PostgreSQL、SQLite 等等。在使用 Sequelize 开发前端应用的过程中,Schema 操作是非常重要的一个环节。在本篇文章中,我们将针对 Sequelize 中的 Schema 操作,分享一些常用的方法和技巧,方便大家更好地使用它。

1. 创建模型

在 Sequelize 中,模型也就是表的映射,可以根据我们定义的模型来创建新表,在这里我们需要介绍两种方法:手动创建和自动创建。

手动创建

手动创建模型代码示例:

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

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

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

手动创建模型需要在 Sequelize 实例上调用 define 方法,并传递三个参数:

  1. 第一个参数表示模型名称,它会被 Sequelize 自动转化为复数形式作为表名。
  2. 第二个参数是一个对象,包含所有表的字段和属性定义。
  3. 第三个参数是一个可选的对象,用于定义一些模型选项,例如 timestamps(记录创建和更新时间)和 underscored(将字段命名从 camelCase 转为 snake_case)。

手动创建模型需要通过 sequelize.sync() 方法来执行 DDL(数据定义语言)操作,即创建表、删除表等。它会根据模型定义自动创建表结构。

自动创建

自动创建模型代码示例:

自动创建可以通过调用 Sequelize 实例的 sync 方法,传递一个选项 force,它会在自动创建表之前先删除所有现有的表数据,然后再自动创建表。

2. 更改模型

在 Sequelize 中,如果你需要更改模型或表的结构,可以通过以下方法进行操作。

新增字段

新增字段代码示例:

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

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

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

在定义表字段时,只需要新增一个属性字段即可。

修改字段

修改字段代码示例:

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

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

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

在定义表字段时,如果需要更改字段属性,只需要修改对应的属性即可。

删除字段

删除字段代码示例:

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

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

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

在定义表字段时,如果需要删除字段,只需要将其删除即可。

3. 索引操作

在 Sequelize 中,使用 sequelize.define 定义的表都会默认创建一个 name 字段和一个递增的 id 字段,这些字段都默认为主键和索引字段。如果需要创建更多的索引,也可以在 Schema 中手动指定。

创建索引

创建索引代码示例:

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

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

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

在调用 sync 方法时,传递一个 indexes 选项,它是一个数组,包含所有需要创建的索引。

删除索引

删除索引代码示例:

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

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

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

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

在调用 dropIndex 方法时,传递一个索引名称即可删除指定的索引。

4. 总结

在本文中,我们介绍了 Sequelize 中的 Schema 操作,主要涉及模型创建、模型更改和索引操作三个方面,包括手动创建模型、自动创建模型、新增字段、修改字段、删除字段、创建索引和删除索引。希望这些方法和技巧能够帮助大家更好地使用 Sequelize,提高开发效率。

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

纠错
反馈