models/migrations: fix little logic error

This commit is contained in:
Unknwon 2015-02-12 12:46:21 -05:00
parent 31eb49c3ae
commit 0b3722c359
1 changed files with 12 additions and 10 deletions

View 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
}