Files
CaddyProxyManager/backend/internal/database/sqlite.go
2022-09-26 15:41:00 +02:00

41 lines
779 B
Go

package database
import (
"fmt"
"github.com/Pacerino/cpm/internal/config"
"github.com/Pacerino/cpm/internal/logger"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
var dbInstance *gorm.DB
// NewDB creates a new connection
func NewDB() {
logger.Info("Creating new DB instance")
dbInstance = SqliteDB()
dbInstance.AutoMigrate(&Host{}, &Upstream{})
}
// GetInstance returns an existing or new instance
func GetInstance() *gorm.DB {
if dbInstance == nil {
NewDB()
}
return dbInstance
}
// SqliteDB Create sqlite client
func SqliteDB() *gorm.DB {
dbFile := fmt.Sprintf("%s/caddyproxymanager.db", config.Configuration.DataFolder)
db, err := gorm.Open(sqlite.Open(dbFile), &gorm.Config{})
if err != nil {
logger.Error("SqliteError", err)
return nil
}
return db
}