序列化动态数据库配置

时间:2018-10-02 05:35:29

标签: javascript sequelize.js sequelize-cli

我想问问是否可以在sequelize-cli中使用基于promise的配置。 因此,其背后的想法是我的配置文件位于AWS S3中,但其格式没有与sequ​​elize的配置文件匹配(我必须在代码中对其进行重新格式化)

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

谢谢!

1 个答案:

答案 0 :(得分:0)

TL; DR可以在config.js中导出承诺,该承诺返回配置对象。例如:

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

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

因此,要使其正常工作,您需要在根文件夹(使用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问题跟踪器上找到了答案,并发现了这个问题:https://github.com/sequelize/cli/issues/668