Trace back everything (tested)

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2026-01-21 19:19:17 +08:00
parent 3f44d2d9c2
commit 5f6eb9f2a2
16 changed files with 229 additions and 84 deletions

View File

@@ -1,6 +1,7 @@
package data
import (
"context"
"nixcn-cms/data/drivers"
"os"
@@ -16,7 +17,7 @@ var Database *gorm.DB
var Redis redis.UniversalClient
var MeiliSearch meilisearch.ServiceManager
func Init() {
func Init(ctx context.Context) {
// Init database
dbType := viper.GetString("database.type")
exDSN := drivers.ExternalDSN{
@@ -27,21 +28,21 @@ func Init() {
}
if dbType != "postgres" {
slog.Error("[Database] Only support postgras db!")
slog.ErrorContext(ctx, "[Database] Only support postgras db!")
os.Exit(1)
}
// Conect to db
db, err := drivers.Postgres(exDSN)
if err != nil {
slog.Error("[Database] Error connecting to db!", "err", err)
slog.ErrorContext(ctx, "[Database] Error connecting to db!", "err", err)
os.Exit(1)
}
// Auto migrate
err = db.AutoMigrate(&User{}, &Event{}, &Attendance{}, &Client{})
if err != nil {
slog.Error("[Database] Error migrating database!", "err", err)
slog.ErrorContext(ctx, "[Database] Error migrating database!", "err", err)
os.Exit(1)
}
Database = db
@@ -57,7 +58,7 @@ func Init() {
}
rdb, err := drivers.Redis(rDSN)
if err != nil {
slog.Error("[Redis] Error connecting to Redis!", "err", err)
slog.ErrorContext(ctx, "[Redis] Error connecting to Redis!", "err", err)
os.Exit(1)
}
Redis = rdb