2016-08-04 10 views
1

Ich bin auf der Suche nach einer Umgebungsvariablen innerhalb der config.json-Datei meines Projekts mit Sequelize. Ich verwende dotenv, um Umgebungsvariablen lokal zu setzen. Meine config.json Datei sieht wie folgt ausVerwenden einer Umgebungsvariablen für lokale Sequelize-Konfiguration

{ 
    "development": { 
    "username": process.env.DB_USER, 
    "password": process.env.DB_PASS, 
    "database": process.env.DB_DATABASE, 
    "host": process.env.DB_HOST, 
    "dialect": "mysql" 
    }, 
    "test": { 
    "username": "root", 
    "password": null, 
    "database": "database_test", 
    "host": "127.0.0.1", 
    "dialect": "mysql" 
    }, 
    "production": { 
    "use_env_variable": "JAWSDB_URL", 
    "dialect": "mysql" 
    } 
} 

Das Problem, das ich habe ist, dass ich nicht Variablen innerhalb der config.json Datei verwenden können. Es sieht so aus, als könnte ich für die Produktion den Schlüssel "use_env_varable" verwenden und die Variable env für meine Verbindungszeichenfolge verwenden. Also ich denke, ich brauche entweder eine Möglichkeit, die kombinierte Verbindungszeichenfolge für meine lokale MySQL-Datenbank herauszufinden oder eine Möglichkeit, Variablen in der config.json zu verwenden. Irgendwelche Lösungen?

Antwort

1

sollten Sie config.json Datei zu einem config.js Modul ändern und stellen Sie sicher require die dotenv an der Spitze.

require('dotenv').config(); // this is important! 
module.exports = { 
"development": { 
    "username": process.env.DB_USERNAME, 
    "password": process.env.DB_PASSWORD, 
    "database": process.env.DB_DATABASE, 
    "host": process.env.DB_HOST, 
    "dialect": "mysql" 
}, 
"test": { 
    "username": "root", 
    "password": null, 
    "database": "database_test", 
    "host": "127.0.0.1", 
    "dialect": "mysql" 
}, 
"production": { 
    "username": "root", 
    "password": null, 
    "database": "database_production", 
    "host": "127.0.0.1", 
    "dialect": "mysql" 
} 
}; 

Hinweis: Aktualisieren Sie Ihre .sequelizerc Datei, um die neue Konfigurationsdatei anzupassen.

"config": path.resolve('./config', 'config.js'), 
0

Sie können die use_env_variable auch für die Entwicklung verwenden. Sie scheinen bereits dotenv zu verwenden, also nehme ich an, Sie haben bereits eine .env-Datei eingerichtet. fügen Sie einfach diese Zeile hinzu:

LocalDB = mysql: // [user]: [pass] @ [sqldomain]/[db name]

ersetzt das Zeug in [] als notwendig, und in der Config Datei-Set "Use_env_variable" zu LOCALDB, genau wie Sie JAWSDB für die Produktion haben.

Verwandte Themen