HEMS: add "smartgrid" session logging (#25907)
This commit is contained in:
parent
73f468e4c5
commit
381573b0eb
33 changed files with 915 additions and 215 deletions
6
server/db/cache/cache.go
vendored
6
server/db/cache/cache.go
vendored
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
14
server/db/registry.go
Normal 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)
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue