Fix metrics table migration (#29250)
Some checks failed
Release / call-build-workflow (push) Has been cancelled
Release / Publish Docker :release (push) Has been cancelled
Release / Github & APT (push) Has been cancelled
Release / Demo (push) Has been cancelled
Release / Hassio Addon (push) Has been cancelled

This commit is contained in:
andig 2026-04-19 17:35:45 +02:00 • committed by GitHub
parent b751090b03
commit 9138ef81f6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -182,23 +182,24 @@ func SetupSchema() error {
}
}
rename := func(from, to string) error {
if table := new(meter); m.HasColumn(table, from) && !m.HasColumn(table, to) {
return m.RenameColumn(table, from, to)
}
return nil
}
// meter: split energy direction
if old := "val"; m.HasColumn(new(meter), old) {
if err := m.RenameColumn(new(meter), old, "import"); err != nil {
return err
}
} else {
// meter: split energy direction #2
if old := "pos"; m.HasColumn(new(meter), old) {
if err := m.RenameColumn(new(meter), old, "import"); err != nil {
return err
}
}
if old := "neg"; m.HasColumn(new(meter), old) {
if err := m.RenameColumn(new(meter), old, "export"); err != nil {
return err
}
}
if err := rename("val", "import"); err != nil {
return err
}
// meter: split energy direction #2
if err := rename("pos", "import"); err != nil {
return err
}
if err := rename("neg", "export"); err != nil {
return err
}
return db.Instance.AutoMigrate(new(meter))