package db import ( "log" "os" "rockhu-bot/local/model" "time" "go.uber.org/dig" "gorm.io/driver/postgres" "gorm.io/gorm" ) func Start(di *dig.Container) { dbConn := os.Getenv("DB_CONNECTION") db, err := gorm.Open(postgres.New(postgres.Config{ DSN: dbConn, PreferSimpleProtocol: true, }), &gorm.Config{ NowFunc: func() time.Time { utc, _ := time.LoadLocation("") return time.Now().In(utc) }}) if err != nil { log.Panic("failed to connect database") } err = di.Provide(func() *gorm.DB { return db }) if err != nil { log.Panic("failed to bind database") } Migrate(db) } func Migrate(db *gorm.DB) { err := db.AutoMigrate(&model.ConcertModel{}) if err != nil { log.Panic("failed to migrate model.ApiModel") } }