aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--models/migrations/migrations.go18
1 files changed, 10 insertions, 8 deletions
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index 1510bafd..f2ce6eb0 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -66,7 +66,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
@@ -77,7 +77,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 {
@@ -103,6 +103,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"`
@@ -119,12 +126,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
}