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() +}