我正在尝试使用Sequelize js与Serverless,来自传统服务器背景,我很困惑在哪里/如何运行数据库迁移。
我是否应该创建用于运行迁移的专用功能,还是有其他方式来运行迁移?
答案 0 :(得分:2)
Lambda函数设计为可在必要时运行。您希望多次执行时部署它们。
为什么要为迁移任务创建Lambda函数?应用数据库迁移是一项维护任务,您应该每个迁移ID只执行一次。如果您不想多次执行相同的SQL脚本,我认为您应该避免为此目的创建Lambda函数。
在这种情况下,我将使用命令行工具连接此数据库并执行相应的任务。你也可以为此运行一个Node.js脚本,但创建一个Lambda来执行脚本,然后删除这个Lambda听起来很奇怪,只有在你不能直接访问这个数据库时才能使用它。
答案 1 :(得分:1)
几天前,我在构建无服务器项目时发现了同样的问题,所以我决定开发一个简单的无服务器插件来管理通过CLI进行的顺序迁移。
使用该插件,您可以:
我知道这个问题大约在两年前发布,但是对于那些一直来这里寻找答案的人来说,该插件可能会有所帮助。
plugin repository on github和plugin page on npm上的代码和使用说明。
要通过npm将插件直接安装在您的项目中,可以运行:
npm install --save serverless-sequelize-migrations