github.com/miguelgrubin/gin-boilerplate@v0.0.0-20231208120009-f8f00c6d4138/pkg/shared/infrastructure/db.go (about) 1 // Package infrastructure provides common services such as database connections, auth, etc. 2 package infrastructure 3 4 import ( 5 "gorm.io/driver/mysql" 6 "gorm.io/driver/postgres" 7 "gorm.io/driver/sqlite" 8 "gorm.io/gorm" 9 ) 10 11 func NewDbConnection(Dbdriver, DBURL string) *gorm.DB { 12 var db *gorm.DB 13 if Dbdriver == "sqlite3" { 14 var err error 15 db, err = gorm.Open(sqlite.Open(DBURL), &gorm.Config{}) 16 if err != nil { 17 panic("failed to connect database") 18 } 19 } 20 21 if Dbdriver == "mysql" { 22 var err error 23 db, err = gorm.Open(mysql.Open(DBURL), &gorm.Config{}) 24 if err != nil { 25 panic("failed to connect database") 26 } 27 } 28 29 if Dbdriver == "mysql" { 30 var err error 31 db, err = gorm.Open(mysql.Open(DBURL), &gorm.Config{}) 32 if err != nil { 33 panic("failed to connect database") 34 } 35 } 36 37 if Dbdriver == "postgres" { 38 var err error 39 db, err = gorm.Open(postgres.Open(DBURL), &gorm.Config{}) 40 if err != nil { 41 panic("failed to connect database") 42 } 43 } 44 45 return db 46 }