elexis/elexis-3-base

3.6: Agenda Table falsche erstellt

Closed this issue · 9 comments

rgwch commented

Wenn man 3.6 neu intalliert und eine frische Datenbank aufsetzt, werden die Felder "priority", "caseType", "insuranceType" und "treatmentRaeson" nicht erstellt, aber beim Programmlauf von Agenda erwartet: Der Versuch, einen Termin einzutragen, endet mit einer Exception.

Danke für Info, ich werds am Dienstag anschaun!

rgwch commented

Ist nicht weiter viel: Die entsprechenden Einträge fehlen im createDB von ch.elexis.agenda.data.Termin (sind nur im upd127 vorhanden).

Termin ist im base, wird also nicht über das createDB (welches im core liegt) verwaltet. Interessant ist, dass die Felder in

private static final String upd127 = "ALTER TABLE AGNTERMINE ADD priority CHAR(1);"
+ "ALTER TABLE AGNTERMINE ADD caseType CHAR(1);"
+ "ALTER TABLE AGNTERMINE ADD insuranceType CHAR(1);"
+ "ALTER TABLE AGNTERMINE ADD treatmentReason CHAR(1);";
ja vorliegen. Es scheint demnach der Fall zu sein, dass das Update auf Termin v127 nicht ausgelöst wird.

Ah okay, du hast dich eh auf das im Termin referenziert - on it!

Durch @madElexis verifiziert.

rgwch commented

Nur interessehalber: Wieso löst du das so, dass du bei Neuinstallation zuerst die Tabelle Version 1.2.6. mit fehlenden Feldern erstellst, und dann die fehlenden Felder für 1.2.7 zufügst? Wäre es nicht sinnvoller, die Tabelle gelich vn Anfang an so zu erstellen, wie sie in der momentanen Version, jetzt also 1.2.7 sein muss? Wenn jemand die Tabellenstruktur erfahren will, muss er dann nur den String createDB anschauen. Bei deiner Lösung muss er quasi im Geist einen Updateprozess machen, um zu sehen, welche Felder da sein sollten. Hat das irgendeinen Vorteil?

Div. Change-Management tools wie liquibase verfahren nach diesem Schema. Hier startet das initialisieren einer DB immer bei 1 und danach werden sukzessive die Updates reingespielt. Somit muss der Code nicht an 2 Orten gewartet werden, und das Update wird gleich für alle Versionen mitgetestet. Bei der neuen Persistenz-Schicht wird das ebenso laufen.

rgwch commented

Es startet aber nicht bei 1, sondern bei 1.2.6. Und es ist eine weitere Hürde für Neueinsteiger. Zumal die Datenbankstruktur nirgends wirklich dokumentiert ist. Macht das Verstehen des Codes noch schwerer, als ohnehin schon.

Ja, weil ich nicht alles zurückportieren wollte. Und wie gesagt, mit NoPo wird das ohnehin alles umgestellt.

Wenn ihr das anders haben wollt, dann bitte machts einen pull-request.

Wenn ihr die Sache in der tiefe diskutieren wollt, dann kommts bitte auf das Entwicklertreffen oder ins Skype.

Wo sind die Neueinsteiger? Jeder der bisher einsteigen wollte bekam Hilfe von uns - ich habe auch schon Entwickler hier gehabt und mit denen stundenlang diskutiert um sie in den Code einzuführen - und das gerne und nicht nur einmal!