loveuer 6e866b83e4 feat: as docker mirror registry
feat: add global proxy config
upgrade: upgrade front(angular) to 19
chore: deployment staff
  1. Dockerfile: build frontend, backend, and run in nginx base image
2024-12-23 22:46:34 -08:00

54 lines
910 B
Go

package dbs
import (
"context"
"os"
"path"
"nf-repo/internal/interfaces"
"nf-repo/internal/opt"
"github.com/glebarez/sqlite"
"github.com/loveuer/nf/nft/log"
"gorm.io/gorm"
)
type tx struct {
db *gorm.DB
}
func (t *tx) TX(ctx context.Context) *gorm.DB {
db := t.db.Session(&gorm.Session{}).WithContext(ctx)
if opt.Cfg.Debug {
db = db.Debug()
}
return db
}
func newTX(db *gorm.DB) interfaces.Database {
return &tx{db: db}
}
func Must(database interfaces.Database, err error) interfaces.Database {
if err != nil {
log.Panic("tx.Must: err = %s", err.Error())
}
if database == nil {
log.Panic("tx.Must: database is nil")
}
return database
}
func NewSqliteTX(filepath string) (interfaces.Database, error) {
if err := os.MkdirAll(path.Dir(filepath), 0o755); err != nil {
return nil, err
}
db, err := gorm.Open(sqlite.Open(filepath), &gorm.Config{})
return newTX(db), err
}