How/Where 到 运行 续集无服务器项目中的迁移?

How/Where to run sequelize migrations in a serverless project?

我正在尝试将 Sequelize js 与 Serverless 结合使用,来自传统服务器背景,我对 where/how 到 运行 数据库迁移感到困惑。

我应该为 运行ning 迁移创建一个专用函数还是有任何其他 运行ning 迁移的方法?

Lambda 函数旨在在必要时供 运行 使用。当您期望多次执行时部署它们。

为什么要为迁移任务创建 Lambda 函数?应用数据库迁移是一项维护任务,每个迁移 ID 只应执行一次。如果您不想多次执行相同的 SQL 脚本,我认为您应该避免为此目的创建 Lambda 函数。

在这种情况下,我会使用命令行工具连接该数据库并执行相应的任务。您也可以为此 运行 一个 Node.js 脚本,但是创建一个 Lambda 来执行该脚本然后删除这个 Lambda 听起来很奇怪,只有当您不能直接访问该数据库时才应使用。

几天前,我在构建一个无服务器项目时发现自己遇到了同样的问题,所以我决定开发一个简单的无服务器插件来通过 CLI 管理 sequelize 迁移。

使用该插件您可以:

  • 创建迁移文件
  • 列出待处理和已执行的迁移
  • 应用挂起的迁移
  • 还原已应用的迁移
  • 重置所有应用的迁移

我知道这个问题大约是两年前发布的,但是对于那些一直来这里寻找答案的人来说,这个插件可能会有帮助。

代码和使用说明在 plugin repository on github and plugin page on npm

要通过 npm 直接在您的项目上安装插件,您可以 运行:

npm install --save serverless-sequelize-migrations