HEMS: add "smartgrid" session logging (#25907)

This commit is contained in:
andig 2025-12-12 18:29:31 +01:00 • committed by GitHub
parent 73f468e4c5
commit 381573b0eb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 915 additions and 215 deletions

View file

@ -17,8 +17,10 @@ type Cache struct {
Value string `json:"value"`
}
func Init() error {
return db.Instance.AutoMigrate(new(Cache))
func init() {
db.Register(func() error {
return db.Instance.AutoMigrate(new(Cache))
})
}
func Put(key string, value any) error {

View file

@ -50,9 +50,24 @@ func New(driver, dsn string) (*gorm.DB, error) {
})
}
func NewInstance(driver, dsn string) (err error) {
Instance, err = New(strings.ToLower(driver), dsn)
return
func NewInstance(driver, dsn string) error {
inst, err := New(strings.ToLower(driver), dsn)
if err != nil {
return err
}
Instance = inst
mu.Lock()
defer mu.Unlock()
for _, f := range registry {
if err := f(); err != nil {
return err
}
}
return nil
}
func Close() error {

14
server/db/registry.go Normal file
View file

@ -0,0 +1,14 @@
package db
import "sync"
var (
mu sync.Mutex
registry []func() error
)
func Register(fun func() error) {
mu.Lock()
defer mu.Unlock()
registry = append(registry, fun)
}

View file

@ -33,12 +33,14 @@ var (
settings []setting
)
func Init() error {
err := db.Instance.AutoMigrate(new(setting))
if err == nil {
err = db.Instance.Find(&settings).Error
}
return err
func init() {
db.Register(func() error {
if err := db.Instance.AutoMigrate(new(setting)); err != nil {
return err
}
return db.Instance.Find(&settings).Error
})
}
func Persist() error {