我正在研究第三方NODE模块,该模块处理发送电子邮件并将其存储在DB中,因此我们将其称为mail-module。为了使某人能够使用其功能,将其导入他的项目并使用其功能发送和存储电子邮件应该足够了。
这里造成问题的是,导入邮件模块的人需要手动创建数据库表来存储电子邮件,因为Sequelize CLI在单独的模块中看不到迁移脚本。在邮件模块中,有Sequelize迁移脚本,但是对于开发人员而言,在模块中查找它比较麻烦,而不是将其复制到自己的项目中并作为项目的一部分运行。
是否有任何方法可以避免此手动工作并进行配置,以使开发人员(邮件模块的用户)运行自己的迁移脚本时也执行邮件模块迁移脚本?
答案 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"
}
}
。希望能解决您的问题。