From 3395bc1cd32698897385596022e0c855765b48f2 Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 5 Jun 2026 20:59:27 +0200 Subject: Add global db variable and open connection to it This allows any handler to access the database via a global variable. The connection is closed when the run function finishes. --- main.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/main.go b/main.go index e623ed6..0c84456 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "database/sql" _ "embed" "log" "net/http" @@ -10,17 +11,20 @@ import ( "time" "github.com/gorilla/mux" + _ "github.com/mattn/go-sqlite3" ) const ( Addr = "127.0.0.1:8000" ReadTimeout = 15 * time.Second WriteTimeout = 15 * time.Second + DatabasePath = "/var/lib/finserv/main.sqlite3" ) //go:embed VERSION.txt var versionTxt string var router *mux.Router = mux.NewRouter() +var db *sql.DB func init() { log.SetFlags(0) @@ -33,6 +37,7 @@ func main() { WriteTimeout, ReadTimeout, []syscall.Signal{syscall.SIGTERM, syscall.SIGINT}, + DatabasePath, ) } @@ -42,10 +47,23 @@ func run( wTimeout time.Duration, rTimeout time.Duration, signals []syscall.Signal, + dbPath string, ) { log.Println("finserv finance server was started.") defer log.Println("finserv finance server was stopped.") + var err error + db, err = sql.Open("sqlite3", dbPath) + if err != nil { + log.Fatalf("Failed to open SQLite3 database '%s': %v", dbPath, err) + } + defer db.Close() + + err = MigrateToLatest(db) + if err != nil { + log.Fatalf("Failed to migrate SQLite3 database '%s': %v", dbPath, err) + } + server := &http.Server{ Handler: handler, Addr: addr, -- cgit v1.3.1