Node.js 是否从单独的第三方节点模块运行Sequelize迁移文件?

Node.js 是否从单独的第三方节点模块运行Sequelize迁移文件?,node.js,orm,sequelize.js,node-modules,sequelize-cli,Node.js,Orm,Sequelize.js,Node Modules,Sequelize Cli,我正在开发第三方节点模块,该模块处理发送电子邮件并将其存储在数据库中,所以我们称之为邮件模块。为了让某人使用它的功能,在他的项目中导入它并使用它的功能发送和存储电子邮件就足够了 这里的问题是,导入邮件模块的人需要手动创建用于存储电子邮件的DB表,因为Sequelize CLI在单独的模块中看不到迁移脚本。在mail模块中有Sequelize迁移脚本,但对于开发人员来说,在模块中查找它比在自己的项目中复制它并作为项目的一部分运行要麻烦 是否有任何方法可以避免此手动工作,并进行配置,以便在开发人员(

我正在开发第三方节点模块,该模块处理发送电子邮件并将其存储在数据库中,所以我们称之为邮件模块。为了让某人使用它的功能,在他的项目中导入它并使用它的功能发送和存储电子邮件就足够了

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


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

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

如果
/node\u modules/.bin/sequelize db:migrate
在主模块中运行迁移,并且您的邮件模块迁移目录位于,比方说,
node\u modules/main module/lib/migrations
,您可以在
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"
  }
}
这样,您将使用以下命令运行所有迁移:
npm run dbs migrate
。希望这能解决你的问题