在无服务器项目中如何/在何处运行sequelize迁移?

时间:2017-05-02 12:12:34

标签: migration sequelize.js serverless-framework sequelize-cli serverless-architecture

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

我是否应该创建用于运行迁移的专用功能,还是有其他方式来运行迁移?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

使用该插件,您可以:

  • 创建迁移文件
  • 列出未决和已执行的迁移
  • 应用待定迁移
  • 还原已应用的迁移
  • 重置所有已应用的迁移

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

plugin repository on githubplugin page on npm上的代码和使用说明。

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

npm install --save serverless-sequelize-migrations