使用 Sequelize 实现数据库迁移

阅读时长 6 分钟读完

在开发 Web 应用程序时,我们经常需要修改数据库表结构。手动更新数据库极其容易出错,因此数据库迁移在现代 web 开发中变得越来越重要。数据库迁移的目标是保证在修改数据库结构时不出现数据丢失或数据不一致的情况。Sequelize 是一个 Node.js ORM,使得操作数据库变得更加容易和方便。在本文中,我们将了解如何使用 Sequelize 实现数据库迁移。

安装

首先,我们需要在项目中安装 Sequelize 和 CLI。可以使用以下命令进行安装:

创建迁移

在使用 Sequelize 实现数据库迁移时,我们需要创建一个迁移文件。我们可以使用 Sequelize CLI 的 migration:generate 命令来创建迁移。运行以下命令:

该命令将创建一个名为 create-users 的迁移文件。该文件位于 ./migrations 目录中,名称应该类似于 20210107035859-create-users.js

Sequelize 迁移文件包含两个主要方法:updown

up

up 方法应该执行所有需要在数据库中进行的更改,例如创建或修改表。该方法中可以使用 queryInterface 对象来执行 SQL 查询。

以下是一个例子,表示在数据库中创建一个名为 users 的表:

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

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

这个例子在数据库中创建一个 users 表,其中包含 idfirstNamelastNameemailpasswordcreatedAtupdatedAt 两个日期字段。在该方法中,我们使用 queryInterface.createTable 方法来执行 SQL 查询。该方法使用 Sequelize API 中定义的数据类型来定义字段(例如Sequelize.INTEGER)。

down

down 方法应该定义如何回滚该迁移,回到上一个版本的数据库。这个方法中可以执行与 up 方法相反的操作。

以下是一个例子,表示在数据库中删除先前创建的 users 表:

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

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

运行迁移

Sequelize 提供了一些 CLI 命令来运行迁移。可以使用以下命令运行所有迁移:

如果数据库不存在,Sequlize 将自动创建当时执行迁移所需的所有表。 这将在目标数据库的 SequelizeMeta 表中创建所有成功执行的迁移的记录。 如果需要,可以回滚单个迁移。

还可以运行单个迁移,并在必要时回滚:

结论

在本文中,我们介绍了如何使用 Sequelize 实现数据库迁移,以及如何创建和运行迁移。Sequelize 为我们提供了一种容易和可维护的方法来进行数据库迁移,使得修改数据库结构变得更加简单。如果你在你的项目中还没有使用 Sequelize 进行迁移,那么我无论如何建议你开始使用它,这将使你维护数据库结构变得更加容易。

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

纠错
反馈