blob: 1c8ecd575834e99c4f18e971a7004b5f268dda3d [file] [log] [blame]
package models
import (
"fmt"
"log"
"os"
"time"
"github.com/merico-dev/lake/config"
"github.com/merico-dev/lake/models/domainlayer/code"
"github.com/merico-dev/lake/models/domainlayer/devops"
"github.com/merico-dev/lake/models/domainlayer/ticket"
"github.com/merico-dev/lake/models/domainlayer/user"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
var Db *gorm.DB
func init() {
var connectionString = config.V.GetString("DB_URL")
var err error
newLogger := logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
logger.Config{
SlowThreshold: time.Second, // Slow SQL threshold
LogLevel: logger.Error, // Log level
IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
Colorful: true, // Disable color
},
)
Db, err = gorm.Open(mysql.Open(connectionString), &gorm.Config{
Logger: newLogger,
})
if err != nil {
fmt.Println("ERROR: >>> Mysql failed to connect")
panic(err)
}
migrateDB()
}
func migrateDB() {
err := Db.AutoMigrate(
&Task{},
&Notification{},
&Pipeline{},
&user.User{},
&code.Repo{},
&code.Commit{},
&code.Pr{},
&code.Note{},
&ticket.Board{},
&ticket.Issue{},
&ticket.Changelog{},
&ticket.Sprint{},
&ticket.SprintIssue{},
&devops.Job{},
&devops.Build{},
&ticket.Worklog{},
)
if err != nil {
panic(err)
}
// TODO: create customer migration here
}