Config UI: remove obsolete migrations (BC) (#19417)
This commit is contained in:
parent
ee9720c9b0
commit
8bb57b531a
1 changed files with 1 additions and 63 deletions
|
|
@ -28,13 +28,6 @@ type Properties struct {
|
|||
Product string `json:"deviceProduct,omitempty" mapstructure:"deviceProduct"`
|
||||
}
|
||||
|
||||
// TODO remove- migration only
|
||||
type ConfigDetails struct {
|
||||
ConfigID int `gorm:"index:idx_unique"`
|
||||
Key string `gorm:"index:idx_unique"`
|
||||
Value string
|
||||
}
|
||||
|
||||
// Named converts device details to named config
|
||||
func (d *Config) Named() Named {
|
||||
res := Named{
|
||||
|
|
@ -87,62 +80,7 @@ var db *gorm.DB
|
|||
func Init(instance *gorm.DB) error {
|
||||
db = instance
|
||||
m := db.Migrator()
|
||||
|
||||
for old, new := range map[string]string{
|
||||
"devices": "configs",
|
||||
"device_details": "config_details",
|
||||
} {
|
||||
if m.HasTable(old) {
|
||||
if err := m.RenameTable(old, new); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
err := m.AutoMigrate(new(Config))
|
||||
|
||||
if err == nil && m.HasTable("config_details") {
|
||||
err = m.AutoMigrate(new(ConfigDetails))
|
||||
|
||||
if err == nil && m.HasConstraint(new(ConfigDetails), "fk_devices_details") {
|
||||
err = m.DropConstraint(new(ConfigDetails), "fk_devices_details")
|
||||
}
|
||||
if err == nil && m.HasColumn(new(ConfigDetails), "device_id") {
|
||||
err = m.DropColumn(new(ConfigDetails), "device_id")
|
||||
}
|
||||
}
|
||||
|
||||
if err == nil && m.HasTable("config_details") {
|
||||
var devices []Config
|
||||
if err := db.Where(&Config{}).Find(&devices).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// migrate ConfigDetails into Config.Value
|
||||
for _, dev := range devices {
|
||||
var details []ConfigDetails
|
||||
if err := db.Where(&ConfigDetails{ConfigID: dev.ID}).Find(&details).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
res := make(map[string]any)
|
||||
for _, detail := range details {
|
||||
res[detail.Key] = detail.Value
|
||||
}
|
||||
|
||||
if len(res) > 0 {
|
||||
dev.Data = res
|
||||
|
||||
if err := db.Save(&dev).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
err = m.DropTable("config_details")
|
||||
}
|
||||
|
||||
return err
|
||||
return m.AutoMigrate(new(Config))
|
||||
}
|
||||
|
||||
// NameForID returns a unique config name for the given id
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue