github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/models/models.go (about) 1 package models 2 3 import ( 4 "github.com/covergates/covergates/core" 5 "gorm.io/gorm" 6 ) 7 8 var ( 9 tables []interface{} 10 ) 11 12 type databaseService struct { 13 db *gorm.DB 14 } 15 16 // NewDatabaseService with GORM 17 func NewDatabaseService(db *gorm.DB) core.DatabaseService { 18 return &databaseService{ 19 db: db, 20 } 21 } 22 23 func (store *databaseService) Session() *gorm.DB { 24 return store.db.Session(&gorm.Session{}) 25 } 26 27 func (store *databaseService) Migrate() error { 28 return migrate(store.db) 29 } 30 31 func init() { 32 tables = append(tables, 33 &Report{}, 34 &ReportComment{}, 35 &Reference{}, 36 &Coverage{}, 37 &User{}, 38 &Repo{}, 39 &RepoSetting{}, 40 &RepoHook{}, 41 &OAuthToken{}, 42 ) 43 } 44 45 func migrate(db *gorm.DB) error { 46 return db.AutoMigrate(tables...) 47 }