Add flask migrations
Hier wird die Flask-Migration Erweiterung hinzugefügt um SQL-Migrations durchführen zu können.
Der Workflow wird dann folgendermaßen sein:
Wenn wir neue Modelle anlegen oder existierenden verändern:
python3 manage.py db migrate
um die Migration Files zu erstellen.
Die Dabei entstehenden Dateien unter app/migrations/versions
sollen dann in Git aufgenommen werden.
Beim Deployment wird dann statt bisher python3 manage.py recreate_db
-> python3 manage.py db upgrade
ausgeführt.
Die automatisch erstellten Migrationfiles, wie sie mit db migrate
erstellt werden, sollten schon mal eine große Hilfe sein. Alembic (das dafür genutzt wird) erkennt aber leider nicht so viele Änderungen, wie beispielsweise der Django ORM.
Einschränkungen dafür sind hier aufgelistet: https://alembic.sqlalchemy.org/en/latest/autogenerate.html
Für die Kommandos, die Flask-Migrate mitbringt gibt es hier Dokumentation: https://flask-migrate.readthedocs.io/en/latest/#
Ich habe die Einführung der Configurations nun mit dieser Erweiterung durchgeführt und denke, dass sie auch gut im Hauptrepo eingesetzt werden kann. Für den ersten Einsatz musste ich allerdings die existierenden Tabellen händisch umbenennen und in die dann neu erstellten Tabellen kopieren. (Also der initialie Aufwand ist leider etwas höher, aber ich hoffe, dass wir in Zukunft Vorteile dadurch haben werden).
CC: @abbrent, @pohled