iykyka/core-backend/db.go

33 lines
588 B
Go

package main
import (
"log"
"strings"
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
func openDB() *gorm.DB {
url := databaseURL()
var dialector gorm.Dialector
if strings.HasPrefix(url, "sqlite:") {
dialector = sqlite.Open(strings.TrimPrefix(url, "sqlite:"))
} else {
dialector = postgres.Open(url)
}
db, err := gorm.Open(dialector, &gorm.Config{})
if err != nil {
log.Fatalf("failed to connect to database: %v", err)
}
if err := db.AutoMigrate(allModels...); err != nil {
log.Fatalf("failed to migrate database: %v", err)
}
return db
}