从单独的第三方节点模块运行Sequelize迁移文件?

时间:2019-07-07 13:21:05

标签: node.js orm sequelize.js node-modules sequelize-cli

我正在研究第三方NODE模块,该模块处理发送电子邮件并将其存储在DB中,因此我们将其称为mail-module。为了使某人能够使用其功能,将其导入他的项目并使用其功能发送和存储电子邮件应该足够了。

这里造成问题的是,导入邮件模块的人需要手动创建数据库表来存储电子邮件,因为Sequelize CLI在单独的模块中看不到迁移脚本。在邮件模块中,有Sequelize迁移脚本,但是对于开发人员而言,在模块中查找它比较麻烦,而不是将其复制到自己的项目中并作为项目的一部分运行。

是否有任何方法可以避免此手动工作并进行配置,以使开发人员(邮件模块的用户)运行自己的迁移脚本时也执行邮件模块迁移脚本?

1 个答案:

答案 0 :(得分:1)

您不一定需要将邮件模块迁移复制到主模块。您可以为--migrations-path命令指定db:migrate选项。

提供./node_modules/.bin/sequelize db:migrate在主模块中运行迁移,并且您的邮件模块迁移目录位于node_modules/main-module/lib/migrations中,您可以在{{1} }:

package.json

这样,您将使用以下命令运行所有迁移:{ ... "scripts": { "dbs-migrate": "./node_modules/.bin/sequelize db:migrate && ./node_modules/.bin/sequelize db:migrate --migrations-path ./node_modules/mail-module/lib/migrations" } } 。希望能解决您的问题。