diff --git a/backend/gamesystem/database.go b/backend/gamesystem/database.go index 613739b..a9acc4a 100644 --- a/backend/gamesystem/database.go +++ b/backend/gamesystem/database.go @@ -24,3 +24,21 @@ func MigrateStructure(db ...*gorm.DB) error { } return nil } + +func MigrateDataIfNeeded(db *gorm.DB) error { + // Implement data migration logic here if needed + gameSystem := models.GameSystem{} + err := db.First(&gameSystem, "ID = ?", 1).Error + if err != nil { + // No initial version found, assume no migration needed + gameSystem.Code = "M5" + gameSystem.Name = "M-System" + gameSystem.Description = "Version 5 des Rollenspiels" + gameSystem.IsActive = true + err = db.Create(&gameSystem).Error + if err != nil { + return err + } + } + return nil +} diff --git a/backend/maintenance/handlers.go b/backend/maintenance/handlers.go index d38070e..32a314b 100644 --- a/backend/maintenance/handlers.go +++ b/backend/maintenance/handlers.go @@ -76,6 +76,11 @@ func migrateDataIfNeeded(db *gorm.DB) error { logger.Error("Fehler beim Migrieren der Datenbankdaten: %s", err.Error()) return fmt.Errorf("failed to migrate database data: %w", err) } + err = gamesystem.MigrateDataIfNeeded(db) + if err != nil { + logger.Error("Fehler beim Migrieren der GameSystem-Daten: %s", err.Error()) + return fmt.Errorf("failed to migrate game system data: %w", err) + } // Kopiere categorie nach learning_category für Spells, wenn learning_category leer ist logger.Debug("Migriere Spell Learning Categories...") @@ -217,8 +222,13 @@ func copyMariaDBToSQLite(mariaDB, sqliteDB *gorm.DB) error { // (Basis-Tabellen zuerst wegen Foreign Key-Abhängigkeiten) tables := []interface{}{ // Basis-Strukturen (keine Abhängigkeiten) + &database.MigrationHistory{}, + &database.SchemaVersion{}, &user.User{}, + // Game System - Basis + &models.GameSystem{}, + // Learning Costs System - Basis &models.Source{}, &models.CharacterClass{},