diff --git a/documentations/Ergebnisse/Abschlussbericht_und_Praesentation/PhHo/4-4-2-database-generator.md b/documentations/Ergebnisse/Abschlussbericht_und_Praesentation/PhHo/4-4-2-database-generator.md index e6679e7..a457919 100644 --- a/documentations/Ergebnisse/Abschlussbericht_und_Praesentation/PhHo/4-4-2-database-generator.md +++ b/documentations/Ergebnisse/Abschlussbericht_und_Praesentation/PhHo/4-4-2-database-generator.md @@ -73,13 +73,15 @@ AnnualFinanceStatement = type( Das Anlegen der Klassen alleine reicht nicht aus, um diese in einer SQL Datenbank anzulegen. Diese müssen über das `Base`-Objekt wie folgt Initialisiert werden. +Dabei werden nur fehlende Tabellen initialisiert. ```python Base.metadata.create_all(db.bind) ``` Dabei ist `db` eine `sqlalchemy.orm.Session` welche über eine SQL-Engine mit einer Datenbank verbindet. - +Die Datenbank wird am Anfang des `dataprocessing` nach dem fast vollständigen Reset der Datenbank. +Ausgeschlossen davon ist eine Tabelle, welche nicht Firmen listed für die Verbindungen gefunden wurde, ohne das diese in unseren Daten gefunden wurden. Das resultierende SQL-Schema sieht dann wie folgt aus: ```{eval-rst} @@ -87,3 +89,6 @@ Das resultierende SQL-Schema sieht dann wie folgt aus: :format: png :page-index: 1 ``` + +Es gibt Schema verändernde, versionierende Erweiterungen für `SQLAlchemy`, wie `Alembic` oder `SQLAlchemy-mirgrate`. +Durch ein Softwaredesign welche die Produktivtabellen aber regelmäßig reinitialisiert wird dies unnötig.