📜  sequelize 迁移添加列 - Javascript (1)

📅  最后修改于: 2023-12-03 14:47:24.529000             🧑  作者: Mango

Sequelize 迁移添加列

当我们需要向数据库中的某张表格添加新的列时,Sequelize 的迁移功能可以帮助我们方便地实现这个需求。本文将介绍如何使用 Sequelize 的迁移功能进行添加列操作。

步骤一:创建 migration 文件

首先,我们需要创建一个新的 migration 文件,在该文件中编写 Sequelize 迁移的代码。可以使用 Sequelize CLI 工具来创建 migration 文件,具体命令如下:

npx sequelize-cli migration:generate --name=add-column-to-table

其中,--name 参数指定了新创建的 migration 文件的名称,可以根据实际情况自行修改。

创建成功后,会在 ./migrations 目录下生成一个新的 migration 文件。

步骤二:编写 migration 代码

在新创建的 migration 文件中,我们需要定义两个方法:updownup 方法用于定义添加新列的操作,down 方法用于定义回滚到添加前状态的操作。

以添加一个名为 new_column 的新列为例,我们可以在 up 方法中使用 addColumn 方法来完成添加列的操作:

'use strict';

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.addColumn('table_name', 'new_column', Sequelize.STRING);
  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.removeColumn('table_name', 'new_column');
  }
};

其中,addColumn 方法的第一个参数为表格的名称,第二个参数为新列的名称,第三个参数为新列的数据类型。在本例中,我们的新列类型为 STRING

同理,我们可以在 down 方法中使用 removeColumn 方法来回滚操作,删除新添加的列。

步骤三:运行 migration

完成编写代码后,我们可以使用 Sequelize CLI 工具来执行 migration,将我们的操作映射到实际的数据库中。

npx sequelize-cli db:migrate

在运行命令后,Sequelize 会自动执行我们编写的操作,并将操作映射到实际的数据库中。

如果需要回滚操作,可以使用如下命令:

npx sequelize-cli db:migrate:undo

会执行 down 方法中定义的操作,将添加的列删除。

结语

使用 Sequelize 迁移功能添加列是一项非常便捷的操作。只需要简单几步,就可以轻松地实现向数据库添加新列的操作。同时,考虑到稳定性和可维护性,建议在开发时尽可能使用自动迁移机制,确保每个开发者的数据库结构相同,避免出现不必要的问题。