You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
743 B
43 lines
743 B
package models
|
|
|
|
import (
|
|
"github.com/go-xorm/core"
|
|
"github.com/go-xorm/xorm"
|
|
_ "github.com/mattn/go-sqlite3"
|
|
)
|
|
|
|
var x *xorm.Engine
|
|
|
|
var DBModels []interface{} = []interface{}{
|
|
new(Subject),
|
|
new(Teacher),
|
|
new(Lesson),
|
|
new(ReplacementLesson),
|
|
new(Exam),
|
|
}
|
|
|
|
func SyncModels(engine *xorm.Engine) error {
|
|
for _, model := range DBModels {
|
|
if err := engine.Sync2(model); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func SetupEngine() (*xorm.Engine, error) {
|
|
e, err := xorm.NewEngine("sqlite3", "./organizer.db")
|
|
e.SetMapper(core.GonicMapper{})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if err := SyncModels(e); err != nil {
|
|
panic(err)
|
|
return nil, err
|
|
}
|
|
return e, nil
|
|
}
|
|
|
|
func SetDefaultEngine(engine *xorm.Engine) {
|
|
x = engine
|
|
}
|
|
|