|
|
@ -18,7 +18,9 @@ import ( |
|
|
|
) |
|
|
|
|
|
|
|
var ( |
|
|
|
orm *xorm.Engine |
|
|
|
orm *xorm.Engine |
|
|
|
tables []interface{} |
|
|
|
|
|
|
|
HasEngine bool |
|
|
|
|
|
|
|
DbCfg struct { |
|
|
@ -28,6 +30,11 @@ var ( |
|
|
|
UseSQLite3 bool |
|
|
|
) |
|
|
|
|
|
|
|
func init() { |
|
|
|
tables = append(tables, new(User), new(PublicKey), new(Repository), new(Watch), |
|
|
|
new(Action), new(Access), new(Issue), new(Comment), new(Oauth2)) |
|
|
|
} |
|
|
|
|
|
|
|
func LoadModelsConfig() { |
|
|
|
DbCfg.Type = base.Cfg.MustValue("database", "DB_TYPE") |
|
|
|
if DbCfg.Type == "sqlite3" { |
|
|
@ -58,9 +65,7 @@ func NewTestEngine(x *xorm.Engine) (err error) { |
|
|
|
if err != nil { |
|
|
|
return fmt.Errorf("models.init(fail to conntect database): %v", err) |
|
|
|
} |
|
|
|
|
|
|
|
return x.Sync(new(User), new(PublicKey), new(Repository), new(Watch), |
|
|
|
new(Action), new(Access), new(Issue), new(Comment)) |
|
|
|
return x.Sync(tables...) |
|
|
|
} |
|
|
|
|
|
|
|
func SetEngine() (err error) { |
|
|
@ -102,9 +107,9 @@ func SetEngine() (err error) { |
|
|
|
func NewEngine() (err error) { |
|
|
|
if err = SetEngine(); err != nil { |
|
|
|
return err |
|
|
|
} else if err = orm.Sync(new(User), new(PublicKey), new(Repository), new(Watch), |
|
|
|
new(Action), new(Access), new(Issue), new(Comment)); err != nil { |
|
|
|
return fmt.Errorf("sync database struct error: %v", err) |
|
|
|
} |
|
|
|
if err = orm.Sync(tables...); err != nil { |
|
|
|
return fmt.Errorf("sync database struct error: %v\n", err) |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|