2017-09-17 1 views
0

Ich habe Probleme beim Bereitstellen meiner Django-Anwendung auf Heroku. Das Problem tritt auf, weil ich das python-decouple library verwende. Ich verwende es, um meine API_KEYS nicht zu belichten.Bereitstellung mit untracked .env-Datei für Heroku

Dies ist der Fehler Ich erhalte:

File "/app/weather/settings.py", line 20, in <module> 
    API_KEY = config('API_KEY') 
    File "/app/.heroku/python/lib/python3.6/site-packages/decouple.py", line 197, in __call__ 
    return self.config(*args, **kwargs) 
    File "/app/.heroku/python/lib/python3.6/site-packages/decouple.py", line 85, in __call__ 
    return self.get(*args, **kwargs) 
    File "/app/.heroku/python/lib/python3.6/site-packages/decouple.py", line 70, in get 
    raise UndefinedValueError('{} not found. Declare it as envvar or define a default value.'.format(option)) 
decouple.UndefinedValueError: API_KEY not found. Declare it as envvar or define a default value. 

ich alle Variablen in BASE_DIR + '/.env' Datei gespeichert haben, und hinzugefügt, um diese Datei zu meiner .gitignore Datei.

Was ist die Lösung für dieses Problem?

Antwort

1

Sie können keine Einstellungen von Dateien laden, die nicht auf Heroku nachverfolgt werden. Sein filesystem is ephemeral; Alles, was Sie manuell hinzufügen, geht beim nächsten Neustart des Dyno verloren. Dieses happens frequently.

Der "Heroku Weg" ist zu put your settings in environment variables. Umgebungsvariablen werden auf alle dynos zur Verfügung stehen, und zwei große Vorteile:

  • Ihre Einstellungen werden nicht
  • im Code-Repository ausgesetzt werden können, ohne Umgebungsvariablen ändern Code Änderungen vornehmen

Glücklich, python-decouple respects environment variables since version 3.0. Sie sollten in der Lage sein, Umgebungsvariablen für alle Ihre Einstellungen hinzuzufügen und anschließend erfolgreich zu implementieren. (Ich habe diese Bibliothek noch nicht verwendet, aber es sieht so aus, als ob Sie keine Datei .env benötigen, wenn alle Ihre Einstellungen in der Umgebung gefunden werden.)

Verwandte Themen