Files
wallet/backend/database/db.go
T
wt e16edd7744
Build and Test / build-and-test-backend (push) Successful in 1m2s
Build and Test / build-and-test-frontend (push) Successful in 34s
added operations
2025-09-02 18:25:06 +07:00

64 lines
1.4 KiB
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 j := range default_categories {
default_categories[j].UserID = allusers[i].ID
for k := range default_categories[j].Subcategories {
default_categories[j].Subcategories[k].UserID = allusers[i].ID
}
CreateCategory(&default_categories[j])
}
}
if os.Getenv("DEFAULT_OPERATIONS_FILE") != "" {
default_operations := GetOperationsFromFile(os.Getenv("DEFAULT_OPERATIONS_FILE"))
for j := range default_operations {
default_operations[j].UserID = allusers[i].ID
CreateOperation(&default_operations[j])
}
}
}
}
}