2016-07-03 10 views
0

Mein Node-Skript verwendet eine Umgebungsvariable, um eine Verbindung zu einer Postgres-Datenbank mit der Bezeichnung POSTGRES_CONNECTION herzustellen.Wie kann ich beim Ausführen eines Skripts eine Umgebungsvariable aliasieren?

Es wird jedoch zu Heroku bereitgestellt, das die Verbindungszeichenfolge DATABASE_URL nennt.

Gibt es eine elegante Möglichkeit, den DATABASE_URL Wert zu POSTGRES_CONNECTION zu "mappen", vorzugsweise außerhalb des Codes? Ich weiß, dass ich etwas wie connectToPostgres(process.env.POSTGRES_CONNECTION ? process.env.POSTGRES_CONNECTION : process.env.DATABASE_URL) tun kann, aber es scheint mir, als würde ich meinen Code mit umweltspezifischer Konfiguration verschmutzen, was ich gerne vermeiden würde.

Alternativ könnte ich unsere Entwicklungsvariable umbenennen (POSTGRES_CONNECTION), aber da wir auch andere Datenbanken haben, scheint DATABASE_URL ziemlich generisch zu sein, und es wird auch bereits in mehreren niedrigeren Umgebungen verwendet.

Antwort

0

Scheint offensichtlich, aber der sauberste Weg, den ich mir ausgedacht habe, ist, den Alias ​​auf die package.json-Skripte zu beschränken und ein anderes Skript für Heroku zu verwenden.

package.json

{ 
    "scripts": { 
    "start": "node index.js", 
    "heroku": "POSTGRES_CONNECTION=$DATABASE_URL npm start" 
    } 
} 

procfile

web: npm run heroku