From 9efc8a209bc280d4756dbbb904440d386d4a36e4 Mon Sep 17 00:00:00 2001 From: "garionion (aider)" Date: Tue, 25 Feb 2025 23:12:51 +0100 Subject: [PATCH] fix: correct SQLite database connection string and add connection validation --- main.go | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 0418a84..e4d8c7d 100644 --- a/main.go +++ b/main.go @@ -77,7 +77,7 @@ func main() { defer logger.Sync() if cfgErr != nil { - logger.Fatal("Failed to load config", zap.Error(err)) + logger.Fatal("Failed to load config", zap.Error(cfgErr)) } fmt.Println("test") @@ -96,17 +96,34 @@ func main() { } // Initialize database connection - dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", - cfg.DB.User, cfg.DB.Password, cfg.DB.Host, cfg.DB.Port, cfg.DB.DBName) + var dsn string + if cfg.DB.Driver == "sqlite3" { + // For SQLite, the DSN is just the path to the database file + dsn = cfg.DB.DBName + } else { + // For other databases like MySQL, use the standard connection string + dsn = fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", + cfg.DB.User, cfg.DB.Password, cfg.DB.Host, cfg.DB.Port, cfg.DB.DBName) + } + + var err error db, err = sql.Open(cfg.DB.Driver, dsn) if err != nil { logger.Fatal("Failed to connect to database", zap.Error(err)) } defer db.Close() - logger.Info("migrating sqlite database") - if err := migrateSqlite(db); err != nil { - logger.Fatal("Failed to migrate database", zap.Error(err)) + // Test the connection + if err = db.Ping(); err != nil { + logger.Fatal("Failed to ping database", zap.Error(err)) + } + logger.Info("Successfully connected to database", zap.String("driver", cfg.DB.Driver)) + + if cfg.DB.Driver == "sqlite3" { + logger.Info("migrating sqlite database") + if err := migrateSqlite(db); err != nil { + logger.Fatal("Failed to migrate database", zap.Error(err)) + } } // Initialize Echo