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  }