From b0fbefc76bd6fccb58c2b9aa47cab4110c6420f9 Mon Sep 17 00:00:00 2001
From: zeripath <art27@cantab.net>
Date: Sun, 20 Jan 2019 01:20:52 +0000
Subject: [PATCH] Fix the v78 migration script (#5776)

Unfortunately the last fix didn't completely fix the migration to v79 of the db
due to bug with schema locking during Sync2. This should fix this issue.

Fix #5759

Signed-off-by: Andrew Thornton <art27@cantab.net>
---
 models/migrations/v78.go | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/models/migrations/v78.go b/models/migrations/v78.go
index aebbf2c40e..c12d18581c 100644
--- a/models/migrations/v78.go
+++ b/models/migrations/v78.go
@@ -21,6 +21,7 @@ func renameRepoIsBareToIsEmpty(x *xorm.Engine) error {
 		IsEmpty bool `xorm:"INDEX"`
 	}
 
+	// First remove the index
 	sess := x.NewSession()
 	defer sess.Close()
 	if err := sess.Begin(); err != nil {
@@ -37,6 +38,17 @@ func renameRepoIsBareToIsEmpty(x *xorm.Engine) error {
 		return fmt.Errorf("Drop index failed: %v", err)
 	}
 
+	if err = sess.Commit(); err != nil {
+		return err
+	}
+
+	// Then reset the values
+	sess = x.NewSession()
+	defer sess.Close()
+	if err := sess.Begin(); err != nil {
+		return err
+	}
+
 	if err := sess.Sync2(new(Repository)); err != nil {
 		return err
 	}