簡體   English   中英

nodejs sequelize/cli 如何與節點配置一起使用

[英]nodejs sequelize/cli how to use with node-config

首先,這是我第一次使用 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')
}

開發.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 文件。

在node-config的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"
  }
}

要使用env var,請像使用node-config一樣使用custom-environment-variables.json

如果我正確理解了您的問題,您必須使用以下內容將.sequelizerc文件放在項目的根目錄中:

var config = require('config');

config.database.config = __filename;

module.exports = config.database;

這將導出配置的database部分,由node-config配置文件組成sequelize-cli配置。

@type 回答的 config.js 中有錯誤。

  1. 必須使用 getter 而不是 .database
  2. node-config不允許配置的突變(sequelize 嘗試做)解決方案是使用ALLOW_CONFIG_MUTATIONS=true或傳播 object。
// config/config.js
const config = require('config');

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM