Explorar o código

models/migrations: fix little logic error

Unknwon %!s(int64=10) %!d(string=hai) anos
pai
achega
0b3722c359
Modificáronse 1 ficheiros con 12 adicións e 10 borrados
  1. 12 10
      models/migrations/migrations.go

+ 12 - 10
models/migrations/migrations.go

@@ -47,8 +47,8 @@ type Version struct {
 }
 
 // This is a sequence of migrations. Add new migrations to the bottom of the list.
-// If you want to "retire" a migration, remove it from the top of the list and 
-// update _MIN_VER_DB accordingly 
+// If you want to "retire" a migration, remove it from the top of the list and
+// update _MIN_VER_DB accordingly
 var migrations = []Migration{
 	NewMigration("generate collaboration from access", accessToCollaboration), // V0 -> V1
 }
@@ -65,7 +65,7 @@ func Migrate(x *xorm.Engine) error {
 		return fmt.Errorf("get: %v", err)
 	} else if !has {
 		// If the user table does not exist it is a fresh installation and we
-		// can skip all migrations
+		// can skip all migrations.
 		needsMigration, err := x.IsTableExist("user")
 		if err != nil {
 			return err
@@ -76,7 +76,7 @@ func Migrate(x *xorm.Engine) error {
 				return err
 			}
 			// If the user table is empty it is a fresh installation and we can
-			// skip all migrations
+			// skip all migrations.
 			needsMigration = !isEmpty
 		}
 		if !needsMigration {
@@ -102,6 +102,13 @@ func Migrate(x *xorm.Engine) error {
 	return nil
 }
 
+func sessionRelease(sess *xorm.Session) {
+	if !sess.IsCommitedOrRollbacked {
+		sess.Rollback()
+	}
+	sess.Close()
+}
+
 func accessToCollaboration(x *xorm.Engine) error {
 	type Collaboration struct {
 		ID      int64 `xorm:"pk autoincr"`
@@ -118,12 +125,7 @@ func accessToCollaboration(x *xorm.Engine) error {
 	}
 
 	sess := x.NewSession()
-	defer func() {
-		if sess.IsCommitedOrRollbacked {
-			sess.Rollback()
-		}
-		sess.Close()
-	}()
+	defer sessionRelease(sess)
 	if err = sess.Begin(); err != nil {
 		return err
 	}