Files
wallet/backend/database/db.go
T

54 lines
976 B
Go

package database
import (
"backend/model"
"os"
"github.com/glebarez/sqlite"
"github.com/gofiber/fiber/v2/log"
"gorm.io/gorm"
)
var Db *gorm.DB
func Init() error {
if os.Getenv("DATABASE") == "" {
log.Fatal("Error no DATABASE path or url")
}
var err error
Db, err = gorm.Open(sqlite.Open(os.Getenv("DATABASE")), &gorm.Config{})
if err != nil {
log.Error("Failed to connect database")
return err
}
return nil
}
func Migrate() {
Db.AutoMigrate(
&model.User{},
&model.Category{},
&model.Subcategory{},
&model.Operation{},
)
}
func InitDatabase() {
Init()
Migrate()
if os.Getenv("USERS_FILE") != "" {
allusers := GetUsersFromFile(os.Getenv("USERS_FILE"))
for i := range allusers {
CreateUser(&allusers[i])
}
}
if os.Getenv("DEFAULT_CATEGORIES_FILE") != "" {
default_categories := GetCategoriesFromFile(os.Getenv("DEFAULT_CATEGORIES_FILE"))
for i := range default_categories {
CreateCategory(&default_categories[i])
}
}
}