Verbesserung
Wichtig
Detail
Detail
Fehlerbehebung
Detail
#28048
Reihenfolge von Migrationsanweisungen ist fehlerhaft
Bei der Anwendung von Migrationsanweisungen gibt es mehrere Probleme:
- Die Ausführungsreihenfolge der Migrationsanweisungen kann fehlerhaft sein, so dass eine Migrationsanweisung vor einer von dieser benötigten anderen Migrationsanweisung ausgeführt wird.
- Bei der Ausführung von Migrationsanweisungen wird nicht berücksichtigt, dass sich die Menge der abhängigen Module von einer Softwareversion zu einer Folgeversion verändert haben kann. Aktuelle werden auch Migrationsanweisungen für Module ausgeführt, die in der Basisversion der Software gar nicht enthalten waren.
- Manche Abhängigkeiten von Migrationsanweisungen sind inkonsistent, so dass gar keine valide Anwendungsreihenfolge bestimmt werden kann.
Code-Migration
Damit beim Upgrade der Version, alle relevanten Migrationen ausgeführt werden (obwohl noch nicht alle Module mit mindestens ihrer Initial-Version in der Datenbank eingetragen sind), muss die Basisversion in der Konfiguration angegeben werden.
- Alte Software-Version booten, aus der Log-Ausgabe die Zeile
com.top_logic.basic.config.ApplicationConfig - Migration modules: [tl, tl-element, tl-contact, ...]
kopieren und in der Anwendungskonfiguration das Property minimum-modules im Abschnitt com.top_logic.knowledge.service.migration.MigrationService mit den Werten aus der Log-Meldung füllen:
<config service-class="com.top_logic.knowledge.service.migration.MigrationService"> <instance minimum-modules="tl, tl-element, tl-contact, ..." > ... </instance> </config>
Test
- test.com.top_logic.knowledge.service.migration.TestMigrationUtil
- test.com.top_logic.util.TestConsistentMigrationScripts