Migration: MSSQL -> MariaDB

Diskussionen rund um den SVWS-Server

Moderatoren: A. Schüller, Raffenberg, Pfotenhauer

Antworten
Sven Jordis
Beiträge: 16
Registriert: Dienstag 18. Dezember 2018, 15:19
Wohnort: Gummersbach
Schulform: Gesamtschule

Migration: MSSQL -> MariaDB

Beitrag von Sven Jordis »

Hallo,

Produktiv: SchILD 2 auf MSSQL
Testumgebung: SVWS-Server auf Windows 11.

Problem: Die Migration in die MariaDB startet und bricht an folgender Stelle ab:

* Aktualisiere auf Revision 45
- Verwerfe: 3 Trigger...
t_UPDATE_DavSyncTokenLehrer_LehrerLehramtLehrbef
t_INSERT_DavSyncTokenLehrer_LehrerLehramtLehrbef
t_DELETE_DavSyncTokenLehrer_LehrerLehramtLehrbef
- Verwerfe: 0 Indizes
- Verwerfe: 0 Fremdschlüssel
- Verwerfe: 0 Unique-Constraints
- Erstelle: 3 Tabellen...
LehrerPersonaldatenLehramt
-> Erstelle Trigger für Auto-Inkremente
LehrerPersonaldatenLehramtFachrichtung
-> Erstelle Trigger für Auto-Inkremente
LehrerPersonaldatenLehramtLehrbefaehigung
-> Erstelle Trigger für Auto-Inkremente
- Hinzufügen: 0 Spalten
- Ausführen: 4 Befehle...
1 - LehrerLehramtLehrbef: Korrektur: Setze das Lehramt-Kürzel bei Einträgen, wo dieses nicht gesetzt ist anhand der Lehramts-TabelleERROR
[Fehler]
-> Migration fehlgeschlagen! (Fehler beim Aktualsieren der Ziel-DB)
Fehler bei der Migration (driver='MARIA_DB', location='localhost:3306', user='schild')

Um überhaupt eine lauffähige Testversion zu haben, habe ich mit dem alten Migrationstool die SQL-DB in eine Access-DB migriert und diese in die Maria-DB migriert. Das reicht für den Hausgebrauch, ich kann aber noch nicht absehen, welche Daten dabei auf der Strecke geblieben sind.

Gruß, Sven Jordis
hmt
Beiträge: 104
Registriert: Sonntag 9. Dezember 2018, 20:25
Schulform: Berufskolleg
Kontaktdaten:

Re: Migration: MSSQL -> MariaDB

Beitrag von hmt »

Steht eventuell in der Tabelle der Lehrbefähigungen etwas, was einen Absturz verursachen kann?
Sven Jordis
Beiträge: 16
Registriert: Dienstag 18. Dezember 2018, 15:19
Wohnort: Gummersbach
Schulform: Gesamtschule

Re: Migration: MSSQL -> MariaDB

Beitrag von Sven Jordis »

Hallo,

ich kann nicht beurteilen, ob die Einträge korrekt sind, aufgefallen ist mir dies:
Bild1.jpg
Bild1.jpg (21.79 KiB) 493 mal betrachtet
Wobei das Anerkennungskürzel den Wert NULL enthalten darf.
WJohannsen
Beiträge: 370
Registriert: Dienstag 4. Dezember 2018, 07:25
Wohnort: Aachen
Schulform: Gymnasium
Kontaktdaten:

Re: Migration: MSSQL -> MariaDB

Beitrag von WJohannsen »

Sven Jordis hat geschrieben: Montag 22. Juni 2026, 13:01 * Aktualisiere auf Revision 45
Welche Version des SVWS-Servers haben Sie installiert? Die aktuelle Version 1.3.1 verwendet die Datenbank-Revision 63...
Mit freundlichen Grüßen
Wichard Johannsen
hmt
Beiträge: 104
Registriert: Sonntag 9. Dezember 2018, 20:25
Schulform: Berufskolleg
Kontaktdaten:

Re: Migration: MSSQL -> MariaDB

Beitrag von hmt »

WJohannsen hat geschrieben: Montag 22. Juni 2026, 16:12
Sven Jordis hat geschrieben: Montag 22. Juni 2026, 13:01 * Aktualisiere auf Revision 45
Welche Version des SVWS-Servers haben Sie installiert? Die aktuelle Version 1.3.1 verwendet die Datenbank-Revision 63...
Der angezeigte Fehler ist Teil der Migration. Es werden alle Revisionen sukzessive durchgespielt. Das ist soweit ok.
Benutzeravatar
Raffenberg
Beiträge: 3043
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Migration: MSSQL -> MariaDB

Beitrag von Raffenberg »

Hallo,

ich habe gerade eine MDB mit Lehrkräften ohne Anerkennung erfolgreich migriert. Vielleicht reagiert die Migration empfindlich auf Nulleinträge aus der MSSQL.

Probieren Sie deshalb zunächst die MSSQL mit dem Migrationstool für Schild2 auf eine DB zu migrieren. Klappt die Migration? Lässt sich SchILD2 damit starten? Wenn ja, diese für die Migration nach Schild3 nutzen.
Mit freundlichen Grüßen
Jens Raffenberg
Benutzeravatar
T.Hagel
Beiträge: 325
Registriert: Sonntag 29. August 2021, 14:43
Schulform: Alle
Motto: Vermittler zwischen den Welten
Lehrerkind, Ex-Schuladmin, seit 2009 für die Stadt Köln im Schulverwaltungsupport tätig

Re: Migration: MSSQL -> MariaDB

Beitrag von T.Hagel »

Wenn man z.B. Teile der Fehlermeldung ins Suchfeld einträgt und nach „Code“ filtert, gelangt man schnell zu https://github.com/SVWS-NRW/SVWS-Server ... s.java#L37

Bzw. zum Pfad svws-db/src/main/java/de/svws_nrw/db/schema/revisionen/Revision45Updates.java

Dort ab Zeile 37 finden Sie ihre Fehlerbeschreibung und darunter den jeweiligen SQL-Befehl.

UPDATE LehrerLehramtLehrbef d
SET LehramtKrz = (SELECT LehramtKrz FROM LehrerLehramt l GROUP BY l.Lehrer_ID HAVING l.Lehrer_ID = d.Lehrer_ID LIMIT 1)
WHERE TRIM(COALESCE(d.LehramtKrz, '')) = ''
AND (SELECT LehramtKrz FROM LehrerLehramt l GROUP BY l.Lehrer_ID HAVING l.Lehrer_ID = d.Lehrer_ID LIMIT 1) IS NOT NULL



Fehlt da nicht bei der SET-Anweisungnoch noch "d." ? , also:
UPDATE LehrerLehramtLehrbef d
SET d.LehramtKrz = (SELECT LehramtKrz FROM LehrerLehramt l GROUP BY l.Lehrer_ID HAVING l.Lehrer_ID = d.Lehrer_ID LIMIT 1)
WHERE TRIM(COALESCE(d.LehramtKrz, '')) = ''
AND (SELECT LehramtKrz FROM LehrerLehramt l GROUP BY l.Lehrer_ID HAVING l.Lehrer_ID = d.Lehrer_ID LIMIT 1) IS NOT NULL
hmt
Beiträge: 104
Registriert: Sonntag 9. Dezember 2018, 20:25
Schulform: Berufskolleg
Kontaktdaten:

Re: Migration: MSSQL -> MariaDB

Beitrag von hmt »

Fehlt da nicht bei der SET-Anweisungnoch noch "d." ? , also:
UPDATE LehrerLehramtLehrbef d
SET d.LehramtKrz = (SELECT LehramtKrz FROM LehrerLehramt l GROUP BY l.Lehrer_ID HAVING l.Lehrer_ID = d.Lehrer_ID LIMIT 1)
WHERE TRIM(COALESCE(d.LehramtKrz, '')) = ''
AND (SELECT LehramtKrz FROM LehrerLehramt l GROUP BY l.Lehrer_ID HAVING l.Lehrer_ID = d.Lehrer_ID LIMIT 1) IS NOT NULL
Das würde zu einem Syntaxfehler führen. Die Tabelle ist bereits durch das Update auf ebenjener Tabelle eindeutig definiert.
Benutzeravatar
T.Hagel
Beiträge: 325
Registriert: Sonntag 29. August 2021, 14:43
Schulform: Alle
Motto: Vermittler zwischen den Welten
Lehrerkind, Ex-Schuladmin, seit 2009 für die Stadt Köln im Schulverwaltungsupport tätig

Re: Migration: MSSQL -> MariaDB

Beitrag von T.Hagel »

hmt hat geschrieben: Mittwoch 24. Juni 2026, 08:48 Das würde zu einem Syntaxfehler führen. Die Tabelle ist bereits durch das Update auf ebenjener Tabelle eindeutig definiert.
Hm. Passiert das dann ggf. nicht beim Fragensteller, wenn die Bedingungen erfüllt sind ?
Bei unseren Testschulen waren die Bedingungen nicht erfüllt, da ging es dann mit Revision 46 weiter.

Ich habe diesen Updatebefehl gerade mal auf unserer Entwicklungs-Datenbank im MS-SQL-Studio ausgeführt und bekomme folgende Rückmeldung:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'd'.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'LIMIT'.
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near 'LIMIT'.

Der Fehlertooltip wirft hier beim "d" am Ende der Updatezeile aus: "incorrect syntax near 'd'. Expect SET"

Wenn ich dieses "d" entferne und beim Set- und beim Where den Feldern ein "LehrerLehramtLehrbef" voransetze verschwindet der erste Fehler, aber es bleibt bei den Limit-Fehlern.

Ist es nicht eher eine Besonderheit bei MS-SQL, dass man zwar in den Update-Anweisungen mit Aliasen arbeiten kann, aber nicht in der Updateklausel nicht ? Jedoch ... warum sollte ausgerechnet in der Quelldatenbank Daten verändert werden ? Im SchildNRW-Schema lauten die Tabellenfelder doch für die betroffenen Daten ganz anders ? (LehrerPersonalDatenLehramt, z.B.)
Antworten

Zurück zu „SVWS-Server“