26 lines
511 B
Go
26 lines
511 B
Go
package dbdialer
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gorm.io/driver/mysql"
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/driver/sqlite"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// Dialer open database
|
|
func Dialer(ctx context.Context, driver string, dsn string) (db *gorm.DB, err error) {
|
|
switch driver {
|
|
case mysql.DefaultDriverName:
|
|
db, err = gorm.Open(mysql.Open(dsn))
|
|
case sqlite.DriverName:
|
|
db, err = gorm.Open(sqlite.Open(dsn))
|
|
case "postgres":
|
|
db, err = gorm.Open(postgres.Open(dsn))
|
|
default:
|
|
err = gorm.ErrNotImplemented
|
|
}
|
|
return
|
|
}
|