maot-shortner/internal/database/database.go

35 lines
578 B
Go

package database
import (
"log"
"os"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"maot-shortner/internal/domain"
)
type Database struct {
*gorm.DB
}
func InitDatabase() (database *Database, err error) {
log.Println("Starting database...")
dbPath := os.Getenv("DATABASE_PATH")
if dbPath == "" {
dbPath = "/app/data/shortener.db"
}
db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{})
if err != nil {
return nil, err
}
if err = db.AutoMigrate(domain.ImportModels()...); err != nil {
return nil, err
}
database = &Database{db}
return database, nil
}