Closed fstorz closed 10 months ago
Danke für dein Feedback. Ich schau mir das an. Ich denke du könntest auf die M6 gehen und dann die Migration durchführen und danach die UV auf 5.0.0 ziehen.
Mit der RC1 hat sich das Schema verändert und das ist im Migrationsscript noch nicht berücksichtigt
@derTobsch Danke für den Hinweis. Habe gerade die Migration auf Basis des M6 Datenbank Schemas getestet. Dabei sind auch wieder Fehler aufgetreten, zwar andere, aber ich weiß noch nicht, ob die Daten korrekt und vollständig übernommen wurden.
Fehler Nr. 1
2024-01-03T08:30:31.632004Z ERROR Database error 23502: null value in column "first_name" of relation "person" violates not-null constraint
DETAIL: Failing row contains (12, <email replaced>, null, null, <user id replaced>).
CONTEXT: COPY person, line 6: "12 <email replaced> \N \N <user id replaced>"
Fehler Nr. 2. Der violates foreign key constraint
kommt mehrfach vor (16x) mit verschiedenen Tabellen bzw. Constraints. FYI, wir haben bei uns ein paar "gelöschte" Personen (via UI gelöscht) und ein paar "inaktive" Personen.
ERROR PostgreSQL Database error 23503: insert or update on table "application" violates foreign key constraint "fk6rpjm6c93ei39h2kswv215egf"
DETAIL: Key (boss_id)=(1) is not present in table "person".
QUERY: ALTER TABLE "public"."application" ADD CONSTRAINT "fk6rpjm6c93ei39h2kswv215egf" FOREIGN KEY (boss_id) REFERENCES person(id)
Zur Info: Beim erneuten Ausführen des pgloader
scripts, wurde ein Fehler ausgegeben, dass die View department_member_view
bereits existiert. D.h. diese muss zuerst manuell in MySQL gelöscht werden.
In Postgres ist die Tabelle person
leer. Vermutlich wegen dem Fehler mit den NULL Values. Daher vermutlich auch die Fehler mit den Constraints.
Habe die invaliden Daten aus der Tabelle person
und allen darauf referenzierenden Tabellen gelöscht. Danach ist das pgloader
Script erfolgreich durchgelaufen.
Habe die invaliden Daten aus der Tabelle
person
und allen darauf referenzierenden Tabellen gelöscht. Danach ist daspgloader
Script erfolgreich durchgelaufen.
Hey @fstorz,
was gab es noch für invalide Daten on der Tabelle person
? Hattet ihr ggf schon einmal Personen gelöscht bevor es die Möglichkeit gab sie über die UI zu löschen?
Ich bin mir da nicht ganz sicher, was passiert war. Folgender Eintrag war in der Tabelle person
enthalten
MariaDB [urlaubsverwaltung]> select * from person;
+----+-------------------------------------+------------+-----------+---------------------------------------------+
| id | email | first_name | last_name | username |
+----+-------------------------------------+------------+-----------+---------------------------------------------+
...
| 12 | <email> | NULL | NULL | <user-id> |
...
+----+-------------------------------------+------------+-----------+---------------------------------------------+
Auch referenzierende Werte in den Tabellen account
, person_permissions
(hier mit INACTIVE) usw. waren vorhanden. Allerdings wurde der Nutzer nicht in der UV angezeigt. Da der User für uns fachlich sowiso invalid war, habe ich die Daten manuell in den jeweiligen Tabellen gelöscht.
Ich habe das Script und die Beschreibung unter https://github.com/urlaubsverwaltung/urlaubsverwaltung/wiki/Urlaubsverwaltung-5.0-Migration-Guide-To-PostgreSQL angepasst. Mit unserem DB-Dump hat alles funktioniert. Danke für dein Feedback.
@fstorz falls du das neue Script nochmal prüfen möchtest, würde ich mich über Feedback freuen.
Das neue Skript hat bei uns jetzt ohne Fehler direkt mit der Version 5.0.0 funktioniert :thumbsup:
Describe the bug When executing the
pgloader
script provided in the wiki, the execution fails with the following errorpgloader failed to find column "public"."settings"."calendar_ews_email" in target table "\"public\".\"settings\""
. In addition there are a log of warnings in the pgloader execution logs.To Reproduce Steps to reproduce the behavior:
Expected behavior The data migration executes without errors or warnings
System:
Additional context
pgloader dry-run log
``` # pgloader --dry-run /app/pgloader.conf 2024-01-02T13:44:49.008000Z LOG pgloader version "3.6.7~devel" 2024-01-02T13:44:49.032000Z LOG DRY RUN, only checking connections. 2024-01-02T13:44:49.032000Z LOG Attempting to connect to #Full pgloader execution log
``` # pgloader /app/pgloader.conf 2024-01-02T14:02:52.008000Z LOG pgloader version "3.6.7~devel" 2024-01-02T14:02:52.204002Z LOG Migrating from #