From 6dcb27047188225db0919021906c9a524a0dc49d Mon Sep 17 00:00:00 2001 From: WithoutPants <53250216+WithoutPants@users.noreply.github.com> Date: Mon, 18 Nov 2019 08:39:33 +1100 Subject: [PATCH] Close database after migrating. Add reset errors (#215) --- pkg/database/database.go | 18 +++++++++++++++--- pkg/manager/task_import.go | 14 ++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/pkg/database/database.go b/pkg/database/database.go index f3597c84e..51ff3a21e 100644 --- a/pkg/database/database.go +++ b/pkg/database/database.go @@ -2,6 +2,7 @@ package database import ( "database/sql" + "errors" "fmt" "os" "regexp" @@ -38,10 +39,20 @@ func Initialize(databasePath string) { DB = conn } -func Reset(databasePath string) { - _ = DB.Close() - _ = os.Remove(databasePath) +func Reset(databasePath string) error { + err := DB.Close() + + if err != nil { + return errors.New("Error closing database: " + err.Error()) + } + + err = os.Remove(databasePath) + if err != nil { + return errors.New("Error removing database: " + err.Error()) + } + Initialize(databasePath) + return nil } // Migrate the database @@ -71,6 +82,7 @@ func runMigrations(databasePath string) { panic(err.Error()) } } + m.Close() } func registerRegexpFunc() { diff --git a/pkg/manager/task_import.go b/pkg/manager/task_import.go index 93db7b3d3..c353db432 100644 --- a/pkg/manager/task_import.go +++ b/pkg/manager/task_import.go @@ -3,6 +3,10 @@ package manager import ( "context" "database/sql" + "strconv" + "sync" + "time" + "github.com/jmoiron/sqlx" "github.com/stashapp/stash/pkg/database" "github.com/stashapp/stash/pkg/logger" @@ -10,9 +14,6 @@ import ( "github.com/stashapp/stash/pkg/manager/jsonschema" "github.com/stashapp/stash/pkg/models" "github.com/stashapp/stash/pkg/utils" - "strconv" - "sync" - "time" ) type ImportTask struct { @@ -34,7 +35,12 @@ func (t *ImportTask) Start(wg *sync.WaitGroup) { } t.Scraped = scraped - database.Reset(config.GetDatabasePath()) + err := database.Reset(config.GetDatabasePath()) + + if err != nil { + logger.Errorf("Error resetting database: %s", err.Error()) + return + } ctx := context.TODO()