]> source.dussan.org Git - gitea.git/commitdiff
models/migrations: fix little logic error
authorUnknwon <joe2010xtmf@163.com>
Thu, 12 Feb 2015 17:46:21 +0000 (12:46 -0500)
committerUnknwon <joe2010xtmf@163.com>
Thu, 12 Feb 2015 17:46:21 +0000 (12:46 -0500)
models/migrations/migrations.go

index 814564e9af774b1b2688c670f444d95c34d98215..ba2ec0cd0a9564becc140cdf9266cb154996c5c0 100644 (file)
@@ -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
        }