diff options
| author | xengineering <me@xengineering.eu> | 2026-06-05 20:59:27 +0200 |
|---|---|---|
| committer | xengineering <me@xengineering.eu> | 2026-06-05 21:01:52 +0200 |
| commit | 3395bc1cd32698897385596022e0c855765b48f2 (patch) | |
| tree | ad36fb947f07a1d81f68e1919404128386128452 | |
| parent | 3ad3565c64ed1ce692c0509d8fe5a7530f8fb7e3 (diff) | |
| download | finserv-main.tar finserv-main.tar.zst finserv-main.zip | |
This allows any handler to access the database via a global variable.
The connection is closed when the run function finishes.
| -rw-r--r-- | main.go | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -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, |
