package models import ( "InfantrySkillCalculator/utils" "gorm.io/driver/sqlite" "gorm.io/gorm" "gorm.io/gorm/logger" "log" ) var DB *gorm.DB func ConnectDatabase() { database, err := gorm.Open(sqlite.Open("isc_data.db"), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), SkipDefaultTransaction: true, PrepareStmt: true, }) if err != nil { panic("Failed to connect to database! " + err.Error()) } err = database.AutoMigrate(&Clan{}) if err != nil { log.Fatal(err) } err = database.AutoMigrate(&Player{}) if err != nil { log.Fatal(err) } err = database.AutoMigrate(&PlayerCache{}) if err != nil { log.Fatal(err) } err = database.AutoMigrate(&User{}) if err != nil { log.Fatal(err) } err = database.AutoMigrate(&ActivationCode{}) if err != nil { log.Fatal(err) } else { var code ActivationCode if err := database.First(&code).Error; err != nil { firstCode := utils.GenerateActivationCode() database.Create(&ActivationCode{Code: firstCode, Used: false}) log.Println("Created first activation code: " + firstCode) } } err = database.AutoMigrate(&Game{}) if err != nil { log.Fatal(err) } else { var game Game if err := database.First(&game).Error; err != nil { database.Create(&Game{Name: "Battlefield V", Tag: "BFV"}) database.Create(&Game{Name: "Battlefield 2042", Tag: "BF2042"}) log.Println("Created first games") } } err = database.AutoMigrate(&MetricSetting{}) if err != nil { log.Fatal(err) } err = database.AutoMigrate(&UserSettings{}) if err != nil { log.Fatal(err) } DB = database }