From aa1c6b8ff354de82b7920781ee1e47b9c48de953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 7 Feb 2023 15:05:44 +0100 Subject: [PATCH] Close the database when Flamenco shuts down This prevents SQLite journal files from lingering around. --- cmd/flamenco-manager/main.go | 1 + internal/manager/persistence/db.go | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/cmd/flamenco-manager/main.go b/cmd/flamenco-manager/main.go index 8c3cfb91..6fb28f25 100644 --- a/cmd/flamenco-manager/main.go +++ b/cmd/flamenco-manager/main.go @@ -137,6 +137,7 @@ func runFlamencoManager() bool { // Construct the services. persist := openDB(*configService) + defer persist.Close() // Disabled for now. `VACUUM` locks the database, which means that other // queries can fail with a "database is locked (5) (SQLITE_BUSY)" error. This diff --git a/internal/manager/persistence/db.go b/internal/manager/persistence/db.go index 53f10e85..9c407678 100644 --- a/internal/manager/persistence/db.go +++ b/internal/manager/persistence/db.go @@ -149,3 +149,12 @@ func (db *DB) vacuum() { log.Error().Err(tx.Error).Msg("error vacuuming database") } } + +// Close closes the connection to the database. +func (db *DB) Close() error { + sqldb, err := db.gormDB.DB() + if err != nil { + return err + } + return sqldb.Close() +}