Ich habe eine Webanwendung mit einer zugehörigen API und Datenbank.
Ich würde gerne die gleichen Django-Modelle in der API verwenden, aber sie werden separat von verschiedenen Prozessen bedient, sodass ich sie unabhängig skalieren kann.
Ich brauche auch nicht die API, um statische Assets oder eine der anderen Sichten zu liefern.
Die Komplikation besteht darin, dass die Routen, die ich definiert habe, die API und die Webanwendung haben, die sich die Stammdomäne teilen:
%Vor% und zusätzlich sind meine Django-Apps von den Modellen und Konstanten des jeweils anderen abhängig (also lösen zwei verschiedene settings.py
-Dateien mit verschiedenen INSTALLED_APPS
es nicht ganz).
Ich denke, eine Möglichkeit besteht darin, verschiedene Prozesse in meinem Procfile zu definieren, die nur die Django-App starten, aber in einem der Prozesse möglicherweise andere Umgebungsvariablen haben? Ich glaube nicht, dass ich die Umgebung pro Proc mit heroku:config
ändern kann, ich denke es müsste tatsächlich eine Direktive im Procfile sein.
Hat jemand irgendwelche Erfahrungen oder Einsichten mit diesem? Danke!
Wie Daniel sagte, könnten Sie einfach zwei Einstellungsdateien mit einer gemeinsamen Basis verwenden. Wenn Sie eine Teilmenge der URLs bereitstellen möchten, sollten Sie auch separate URL-Definitionen in der Einstellung ROOT_URLCONF
erstellen.
Also wäre Ihre Projektstruktur etwa so:
%Vor%settings / normal.py (analog für api) wäre ungefähr so:
%Vor%Ich glaube nicht, dass Sie verschiedene Umgebungsvariablen benötigen, nur eine separate WSGI-Datei, die auf eine andere settings.py verweist. Diese Einstellungsdatei kann freigegebene Einstellungen aus einer gemeinsamen Datei importieren und dann ihre jeweiligen Werte für INSTALLED_APPS festlegen. Dann kann das Procfile auf diese wsgi-Dateien in separaten Prozessen verweisen.