54 lines
976 B
Go
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])
|
|
}
|
|
}
|
|
}
|