Verständnisfrage: Migration der Datenbank
Verfasst: Mittwoch 28. Juni 2017, 01:14
Hallo Leute,
wir stellen uns folgende Situation vor. Eine Desktop-Anwendung wurde programmiert und zur Verteilung online zur Verfügung gestellt. Sagen wir mal, rund 50 Personen benutzen das Programm auf ihren Rechnern. Diese Anwendung arbeitet mit der Datenbank. Das Programm benutzt SQLAlchemy, um mit der Datenbank kommunizieren zu können. Nun, während der Entwicklungsphase bemerke ich, dass das Schema der Datenbank geändert werden muss. Zum Beispiel muss die vorhandene Tabelle umbenannt werden, oder es muss ein weiteres Feld in einer vorhandenen Tabelle hinzugefügt, gelöscht oder gar bearbeitet werden oder oder oder... Nun, es gibt ja das Werkzeug namens alembic. Klingt auch verlockend, weil dieses Werkzeug auch wunderbar mit SQLAlchemy harmonisiert. Nur ein kleines Problem, alembic funktioniert auf Basis der Kommandozeilen und mit der INI-Datei, in welcher unter anderem die Zugangsdaten zur Datenbank eingetragen werden muss. Auch muss bei alembic eine Umgebung eingerichtet werden und einiges mehr. Und das kann ich den Anwendern kaum zumuten. Wäre mehr als unzumutbar, um nicht zu sagen sehr unreundlich. alembic funktioniert nur sehr gut, wenn das Programm auch bei dem Entwickler bleibt, wie bei einer Web-Anwendung, aber nicht bei Desktop-Anwendungen, korrekt?
Und jetzt meine Frage an euch. Wie kann man solche Migrations-Situationen lösen? Habt ihr da alternative Vorschläge?
wir stellen uns folgende Situation vor. Eine Desktop-Anwendung wurde programmiert und zur Verteilung online zur Verfügung gestellt. Sagen wir mal, rund 50 Personen benutzen das Programm auf ihren Rechnern. Diese Anwendung arbeitet mit der Datenbank. Das Programm benutzt SQLAlchemy, um mit der Datenbank kommunizieren zu können. Nun, während der Entwicklungsphase bemerke ich, dass das Schema der Datenbank geändert werden muss. Zum Beispiel muss die vorhandene Tabelle umbenannt werden, oder es muss ein weiteres Feld in einer vorhandenen Tabelle hinzugefügt, gelöscht oder gar bearbeitet werden oder oder oder... Nun, es gibt ja das Werkzeug namens alembic. Klingt auch verlockend, weil dieses Werkzeug auch wunderbar mit SQLAlchemy harmonisiert. Nur ein kleines Problem, alembic funktioniert auf Basis der Kommandozeilen und mit der INI-Datei, in welcher unter anderem die Zugangsdaten zur Datenbank eingetragen werden muss. Auch muss bei alembic eine Umgebung eingerichtet werden und einiges mehr. Und das kann ich den Anwendern kaum zumuten. Wäre mehr als unzumutbar, um nicht zu sagen sehr unreundlich. alembic funktioniert nur sehr gut, wenn das Programm auch bei dem Entwickler bleibt, wie bei einer Web-Anwendung, aber nicht bei Desktop-Anwendungen, korrekt?
Und jetzt meine Frage an euch. Wie kann man solche Migrations-Situationen lösen? Habt ihr da alternative Vorschläge?