44 lines
797 B
Go
44 lines
797 B
Go
package utils
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gitea.konchin.com/go2025/backend/models"
|
|
"github.com/spf13/viper"
|
|
"github.com/uptrace/bun"
|
|
)
|
|
|
|
func InitDB(ctx context.Context, db *bun.DB) error {
|
|
db.RegisterModel(
|
|
(*models.AliasImage)(nil),
|
|
(*models.Alias)(nil),
|
|
(*models.Image)(nil),
|
|
(*models.Session)(nil),
|
|
)
|
|
if viper.GetBool("reset") {
|
|
return db.ResetModel(ctx,
|
|
(*models.AliasImage)(nil),
|
|
(*models.Alias)(nil),
|
|
(*models.Image)(nil),
|
|
(*models.Session)(nil),
|
|
)
|
|
} else {
|
|
modls := []any{
|
|
(*models.AliasImage)(nil),
|
|
(*models.Alias)(nil),
|
|
(*models.Image)(nil),
|
|
(*models.Session)(nil),
|
|
}
|
|
for _, model := range modls {
|
|
_, err := db.NewCreateTable().
|
|
Model(model).
|
|
IfNotExists().
|
|
Exec(ctx)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
}
|