7

我正在尝试将 Sequelize js 与无服务器一起使用,来自传统服务器背景,我很困惑在哪里/如何运行数据库迁移。

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

4

2 回答 2

4

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

使用该插件,您可以:

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

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

代码和使用说明位于 github 上的插件存储库npm 上的插件页面上

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

npm install --save serverless-sequelize-migrations
于 2019-06-02T17:28:54.627 回答
3

Lambda 函数被设计为可在必要时运行。当您期望多次执行时部署它们。

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

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

于 2017-05-02T18:05:18.673 回答