4

首先,这是我第一次使用 Sequelize,所以请耐心等待。

我想使用https://github.com/sequelize/clihttps://github.com/lorenwest/node-config

我希望 sequelize 能够从多个源文件“组合”它的配置,就像 node-config 一样。

到目前为止,我已经解决了

.sequelizerc

var path = require('path')
var Config = require('config');
var env =Config.util.getEnv('NODE_ENV');
module.exports = {
  'config':          path.resolve('config', env + '.json')
}

development.json 即

{
    "app": {
        "name": "my api"
    },
    "server": {
        "port": 8081
    },
    "development": {
            "username": "username",
            "password": "password",
            "database": "database",
            "host": "127.0.0.1",
            "dialect": "mysql"
    }
} 

您可以看到我必须在所有 env.json 文件中设置一个没有逻辑意义的冗余 env 键。

有没有更好的办法 ?

退税

要获取数据:

var env =Config.util.getEnv('NODE_ENV');
var configDb = Config.get(env);

这样文件加载顺序的所有选项都丢失了。

https://github.com/lorenwest/node-config/wiki/Configuration-Files

另一种方式

sequelize db:migrate --url 'mysql://root:password@mysql_host.com/database_name'

使用标准的节点配置 json 文件。

4

2 回答 2

4

在您config的 node-config 文件夹中,创建一个名为config.js

// config/config.js
const config = require('config');

module.exports = {
  [process.env.NODE_ENV || 'development']: config.database
};

.sequelizerc然后在项目的顶层创建一个。

// .sequelizerc
const path = require('path');

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

例子config/development.json

{
  "database": {
    "username": "root",
    "password": "",
    "database": "my_database",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

要使用环境变量,custom-environment-variables.json请像通常使用 node-config 一样使用。

于 2018-12-11T23:39:44.287 回答
1

如果我正确理解了您的问题,您必须将.sequelizerc文件放在项目的根目录中,其中包含以下内容:

var config = require('config');

config.database.config = __filename;

module.exports = config.database;

这导出database配置的部分,由配置文件组成,node-config作为 sequelize-cli 配置。

于 2015-09-02T20:42:53.400 回答