续集动态数据库配置

sequelize dynamic db config

我想问一下是否可以在sequelize-cli 中使用基于promise 的配置。 所以,它背后的想法是我的配置文件在 AWS S3 中,但它的格式与 sequelize 的配置文件不匹配(我必须在代码中重新格式化)

我没有在文档中找到任何内容。 http://docs.sequelizejs.com/manual/tutorial/migrations.html#dynamic-configuration。他们说他们可以使用一个js文件,但是js文件可以先从S3下载配置文件吗?

谢谢!

TL;DR 您可以在 config.js 中导出一个承诺,其中 return 配置对象。例如:

module.exports = somePromise().then(data => {
  ....,
  production: {
    username: data.user,
    password: data.password,
    database: data.db,
    host: data.host,
    dialect: 'mysql',
  },
})

经过广泛的研究,我发现 config.js 实际上可以处理 promise。

所以要让它工作,您需要在根文件夹(您使用 sequelize 的地方)中提供 .sequelizerc 文件并将其复制到文件

const path = require('path');

module.exports = {
  'config': path.resolve('config', 'config.js')
}

然后,创建一个 config.js 文件。这些步骤记录在 http://docs.sequelizejs.com/manual/tutorial/migrations.html#dynamic-configuration

下一步是在config.js中使用promise。我在 sequelize github issues tracker 上找到了答案并发现了这个问题:https://github.com/sequelize/cli/issues/668