From 64e87b3779435a862c9ff5a555176d21a73e66f1 Mon Sep 17 00:00:00 2001 From: Jonas Franz Date: Mon, 18 Jun 2018 10:43:28 +0200 Subject: [PATCH] Fix database is locked problem for sqlite databases --- cmd/migrate.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmd/migrate.go b/cmd/migrate.go index 4b8d605..33c933a 100644 --- a/cmd/migrate.go +++ b/cmd/migrate.go @@ -94,8 +94,13 @@ func migrate(c context.Context, gc *github.Client, m *migrations.Migratory, user //bar := p.AddBar(int64(len(issues))) for _, gi := range allIssues { fmt.Printf("Migrating #%d...\n", *gi.Number) + retry: issue, err := m.Issue(gi) if err != nil { + if strings.Contains(err.Error(), "database table is locked") { + fmt.Printf("Retring #%d since db table is locked\n", *gi.Number) + goto retry + } return fmt.Errorf("migrating issue[id: %d]: %v", *gi.ID, err) } comments, _, err := gc.Issues.ListComments(c, username, repo, gi.GetNumber(), nil) @@ -104,7 +109,12 @@ func migrate(c context.Context, gc *github.Client, m *migrations.Migratory, user } for _, gc := range comments { fmt.Printf("-> %d...", gc.ID) + retry_comment: if _, err := m.IssueComment(issue, gc); err != nil { + if strings.Contains(err.Error(), "database table is locked") { + fmt.Printf("Retring comment #%d since db table is locked\n", gc.GetID()) + goto retry_comment + } return fmt.Errorf("migrating issue comment [issue: %d, comment: %d]: %v", *gi.ID, gc.ID, err) } fmt.Print("Done!\n")