Migration: MSSQL -> MariaDB
Moderatoren: A. Schüller, Raffenberg, Pfotenhauer
-
Sven Jordis
- Beiträge: 16
- Registriert: Dienstag 18. Dezember 2018, 15:19
- Wohnort: Gummersbach
- Schulform: Gesamtschule
Migration: MSSQL -> MariaDB
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
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
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
Hallo,
ich kann nicht beurteilen, ob die Einträge korrekt sind, aufgefallen ist mir dies:
Wobei das Anerkennungskürzel den Wert NULL enthalten darf.
ich kann nicht beurteilen, ob die Einträge korrekt sind, aufgefallen ist mir dies:
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
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
Wichard Johannsen
-
hmt
- Beiträge: 104
- Registriert: Sonntag 9. Dezember 2018, 20:25
- Schulform: Berufskolleg
- Kontaktdaten:
Re: Migration: MSSQL -> MariaDB
Der angezeigte Fehler ist Teil der Migration. Es werden alle Revisionen sukzessive durchgespielt. Das ist soweit ok.WJohannsen hat geschrieben: Montag 22. Juni 2026, 16:12Welche Version des SVWS-Servers haben Sie installiert? Die aktuelle Version 1.3.1 verwendet die Datenbank-Revision 63...
- Raffenberg
- Beiträge: 3041
- Registriert: Dienstag 25. September 2018, 15:22
- Schulform: Gymnasium
- Kontaktdaten:
Re: Migration: MSSQL -> MariaDB
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.
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
Jens Raffenberg
- 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
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
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
Das würde zu einem Syntaxfehler führen. Die Tabelle ist bereits durch das Update auf ebenjener Tabelle eindeutig definiert.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
- 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
Hm. Passiert das dann ggf. nicht beim Fragensteller, wenn die Bedingungen erfüllt sind ?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.
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.)