From 0b3722c3592ce79b2d0a5ea461366587d91250a5 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Thu, 12 Feb 2015 12:46:21 -0500 Subject: [PATCH] models/migrations: fix little logic error --- models/migrations/migrations.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 814564e9..ba2ec0cd 100644 --- a/models/migrations/migrations.go +++ b/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 }