Fix loading empty config

This commit is contained in:
NeilClack
2026-06-26 23:21:05 -05:00
parent 2735af5fbb
commit 6274687fe8
2 changed files with 16 additions and 14 deletions
+10 -11
View File
@@ -66,8 +66,6 @@ func Run() {
var homeDir string var homeDir string
var dataDir string var dataDir string
var DB *gorm.DB var DB *gorm.DB
var initialConfig db.AppConfig
var result *gorm.DB
networkIsUp = false networkIsUp = false
@@ -110,12 +108,12 @@ func Run() {
// Populate the initial Config cache OR create defaults // Populate the initial Config cache OR create defaults
firstRun := false firstRun := false
result = DB.Unscoped().First(&initialConfig) startupConfig, err := db.GetConfig(DB)
if result.Error != nil { if err != nil {
if errors.Is(result.Error, gorm.ErrRecordNotFound) { if errors.Is(err, gorm.ErrRecordNotFound) {
logger.Info("First run detected: Creating default configuration...") logger.Info("No config found in database, generating defaults")
firstRun = true firstRun = true
initialConfig = db.AppConfig{ startupConfig = &db.AppConfig{
DataDir: dataDir, DataDir: dataDir,
AssetsDir: dataDir, AssetsDir: dataDir,
SystemLevel: "BASIC", SystemLevel: "BASIC",
@@ -126,14 +124,15 @@ func Run() {
AudioEnabled: true, AudioEnabled: true,
SavedVolume: 1.0, SavedVolume: 1.0,
} }
if err := DB.Create(&initialConfig).Error; err != nil {
// Now save it to the database to create the config for all subsequent queries
if err := DB.Create(&startupConfig).Error; err != nil {
logger.Error("failed to insert default config into database: %v", err) logger.Error("failed to insert default config into database: %v", err)
return return
} }
} else {
logger.Error("error querying database for initial config: %v", result.Error)
return
} }
logger.Error("failed to read configuration from database")
return
} }
logger.AddDatabase(DB) logger.AddDatabase(DB)
+6 -3
View File
@@ -2,10 +2,13 @@ package db
import "gorm.io/gorm" import "gorm.io/gorm"
// GetConfig fetches the application config from the database
func GetConfig(db *gorm.DB) (*AppConfig, error) { func GetConfig(db *gorm.DB) (*AppConfig, error) {
var appConfig AppConfig var cfg AppConfig
if err := db.First(&appConfig).Error; err != nil { err := db.First(&cfg, 1).Error
if err != nil {
return nil, err return nil, err
} }
return &appConfig, nil
return &cfg, err
} }