2017-04-11 3 views
0

HintergrundWie teilen Sie Datenbankmodelle zwischen zwei Modulen?

ich zur Zeit auf einem Web-Projekt in Python arbeite, die auf AWS Elasticbeanstalk gehostet wird. Wir haben zwei bereitstellbare Web-Apps. Eine Front-End-Kolbenanwendung und eine Back-End-Kolbenanwendung. Strukturell Die beiden sind im selben git-Repository, aber für die Bereitstellung wird jedes git separat archiviert, um eine .zip-Datei zu erstellen, die auf dem Server veröffentlicht werden kann.

--project/ 
    --front/ 
    --back/ 

Beide Module der Lösung müssen mit einer Datenbank kommunizieren. Ich entschied mich dafür, das ORM sqlalchemy zu verwenden. Mit diesem ORM kann ich Modelle (Python-Klassen) erstellen, die die Tabellen in meiner Datenbank repräsentieren.

AUSGABE

Meine Fragen ist dies. Ich muss die Modelle in beiden Modulen verwenden können. Derzeit habe ich Kopien der Dateien, die die Modelle in jedem Unterordner enthalten. Dies kann zu vielen Problemen beim Synchronisieren der Dateien führen, fügt aber auch viel doppelten Code in mein Repository ein. Ich hatte gehofft, dass jemand mit mehr Erfahrung als ich selbst in der Lage wäre, eine bessere Lösung zu beschreiben.

Antwort

1

Sie können einen common Ordner hinzufügen, in dem Sie alle Ihre Modelle haben (und auch gemeinsam genutzte Bibliotheken), wie folgt aus:

--project/ 
    --front/ 
    --common/ 
    --back/ 

Dann front/ und common/ zum Beispiel zwei Ordner bereitstellen.

Dadurch können Sie entweder die zwei Ordner in einer Zip-Datei komprimieren oder zwei Zip-Dateien verwenden.

+0

Dies scheint die beste Lösung zu sein, die ich gefunden habe, macht meinen Build/Deploy-Prozess länger, aber es lohnt sich für die reduzierte Code-Duplizierung. –

Verwandte Themen