1
Fork 0
photoview/api/database/drivers/database_drivers.go

56 lines
1017 B
Go
Raw Normal View History

package drivers
import (
"strings"
"github.com/photoview/photoview/api/utils"
"gorm.io/gorm"
)
// DatabaseDriverType represents the name of a database driver
type DatabaseDriverType string
const (
MYSQL DatabaseDriverType = "mysql"
SQLITE DatabaseDriverType = "sqlite"
POSTGRES DatabaseDriverType = "postgres"
)
func DatabaseDriverFromEnv() DatabaseDriverType {
var driver DatabaseDriverType
driverString := strings.ToLower(utils.EnvDatabaseDriver.GetValue())
switch driverString {
case "mysql":
driver = MYSQL
case "sqlite":
driver = SQLITE
2021-01-31 17:06:25 +01:00
case "postgres":
driver = POSTGRES
default:
driver = MYSQL
}
return driver
}
func (driver DatabaseDriverType) MatchDatabase(db *gorm.DB) bool {
return db.Dialector.Name() == string(driver)
}
func GetDatabaseDriverType(db *gorm.DB) (driver DatabaseDriverType) {
switch db.Dialector.Name() {
case "mysql":
driver = MYSQL
case "sqlite":
driver = SQLITE
case "postgres":
driver = POSTGRES
default:
driver = MYSQL
}
return
}