Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chore/migration script #205

Merged
merged 45 commits into from
Nov 18, 2024
Merged

Chore/migration script #205

merged 45 commits into from
Nov 18, 2024

Conversation

Elscha
Copy link
Contributor

@Elscha Elscha commented Sep 27, 2024

Habe 2 mal getestet:

  • System frisch aufsetzen
  • Basierend vom aktuellen Release ein Update mit Migration durchzuführen (hab sogar ein minimales Profil für einen Lernenden aufgesetzt und geprüft ob es erhalten bleibt)

Allerdings waren alle tests auf dem Demo-System.

Derzeit sieht es zumindest im Master auch nicht nach einer komplizierten Migration aus. Dieser benötigt aktuell nur eine neue Tabelle: StudentSettings

@Elscha Elscha requested a review from spark-sse September 27, 2024 04:19
@Elscha Elscha linked an issue Sep 27, 2024 that may be closed by this pull request
@spark-sse spark-sse force-pushed the master branch 7 times, most recently from 9a3142f to 2919050 Compare October 3, 2024 15:13
@Elscha
Copy link
Contributor Author

Elscha commented Nov 8, 2024

Migration-Skript komplett überarbeitet um auch Datenmigrationen zu unterstützen. Review Kommentare auch soweit ich es gesehen habe nun adressiert.

Es fehlt noch: Ein Test mit dem ersten Docker Image ob die Daten aus dem Produktiv-System wirklich fehlerfrei migriert werden.

renameSync not support inside of Docker container because of the layered file system
@Elscha
Copy link
Contributor Author

Elscha commented Nov 12, 2024

Migration Script läuft nun Fehlerfrei durch. Allerdings werden derzeit noch folgende Fehler festgestellt:

  1. Beim ersten Durchlauf konnte ich mich nicht einloggen. Nachdem ich mich eingeloggt und die Authrisierungsmeldung bestätigt hatte, wurde mir ein Fehler angezeigt, dass ich mich mit einem anderen Account einloggen sollte. In der Console erschien folgendde Fehlermeldung:
    {40BE9191-3CBF-4977-831B-45BFAB9CE04C}
    Ein Recompile konnte den Fehler lösen. @spark-sse Kannst du was damit anfangen.

  2. Nach einer ersten Durchsicht scheint weitestgehend alles, bis auf die Skill-Karte erhalten worden zu sein. Ausgerechnet bei diesen ist eine Daten-Migration erfoderlich gewesen, was darauf hindeutet, dass hier noch ein Fehler vorliegt.
    Fix: 4621b02

Skill-Maps are linked to a username after migration, but still are retrieved via the userId. This is fixed to use the user name for both operations
@Elscha
Copy link
Contributor Author

Elscha commented Nov 12, 2024

Habe eine Migration erfolgreich wie folgt getestet:

  • docker-compose mit annähernd denselben Parametern wie im Produktivsystem getestet (selfldev client, anderes NextAuth Secret verwendet)
  • DB Backup vom 11.11.2024 Produkttivsystem eingespielt
  • Aktuelles Docker Image vom Produktivsystem hochgefahren
  • Neue Skillkarte angelegt, da keine von mir im Produktivsystem hinterlegt war
  • Manuell Image vom aktuellen Branch erstellt
  • System mit neuem Image hochgefahren
  • Vorher angelegte Lerneinheiten, Skillkarte, Nanomodule, Refrenzen zu MinIO Daten, Lernfortschritt sind erhalten geblieben

Tests die man noch durchführen kann

  • Anzeige und Darstellung von bereits angelegtem Kursmaterialien
  • Hochladen nach Minio
  • Frisch aufsetzen

Lokal kann ich weder in der aktuellen noch in der entwickelten Version User zu Autoren ernennen, obwohl mit das Menü und der Dialog angezeigt werden.

@spark-sse
Copy link
Member

spark-sse commented Nov 15, 2024

Kannst du noch ein kurzen Wiki-Artikel schreiben bei dem die Schritte für eine Migration festgehalten werden. ggf. dann auch um für das richtige mindeset zu sorgen.

vermutlich einfach

  • befehl zum erstellen der SQL mirgation
    • auf was muss man achten | alter table vs create table
  • wie erstellen einer datenmigration + wofür ist das
    • kurze erklärung was es mit compiler fehlern auf sich hat und das die ignoriert werden sollen (ts-expect-error) mit kommentar

Erwähnung dass die migration dann immer ausgeführt werden können.

das waren glaube ich alle sachen die wir mal besrpochen hatten und wo ich nächste woche vergessen würde was da passiert :D

@Elscha
Copy link
Contributor Author

Elscha commented Nov 18, 2024

Kannst du noch ein kurzen Wiki-Artikel schreiben bei dem die Schritte für eine Migration festgehalten werden. ggf. dann auch um für das richtige mindeset zu sorgen.

vermutlich einfach

* befehl zum erstellen der SQL mirgation
  
  * auf was muss man achten | alter table vs create table

* wie erstellen einer datenmigration + wofür ist das
  
  * kurze erklärung was es mit compiler fehlern auf sich hat und das die ignoriert werden sollen (ts-expect-error) mit kommentar

Erwähnung dass die migration dann immer ausgeführt werden können.

das waren glaube ich alle sachen die wir mal besrpochen hatten und wo ich nächste woche vergessen würde was da passiert :D

https://github.com/e-Learning-by-SSE/nm-self-learning/wiki/Database-Migration

@Elscha Elscha merged commit 0503de5 into master Nov 18, 2024
1 check passed
@Elscha Elscha deleted the chore/migration-script branch November 18, 2024 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Datenbank Migrationen einspielen
4 participants