52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package migrations
|
|
|
|
import (
|
|
"acc-server-manager/local/utl/logging"
|
|
"fmt"
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type ConfigPresetMigration struct {
|
|
ID uint `gorm:"primaryKey"`
|
|
Name string `gorm:"not null"`
|
|
Description string
|
|
Configuration string `gorm:"type:text"`
|
|
AssistRules string `gorm:"type:text"`
|
|
Event string `gorm:"type:text"`
|
|
EventRules string `gorm:"type:text"`
|
|
Settings string `gorm:"type:text"`
|
|
CreatedAt string
|
|
UpdatedAt string
|
|
}
|
|
|
|
func (ConfigPresetMigration) TableName() string {
|
|
return "config_presets"
|
|
}
|
|
|
|
func RunAddConfigPresetsMigration(db *gorm.DB) error {
|
|
if err := db.AutoMigrate(&MigrationRecord{}); err != nil {
|
|
return fmt.Errorf("failed to ensure migration_records table: %v", err)
|
|
}
|
|
|
|
var record MigrationRecord
|
|
if err := db.Where("migration_name = ?", "007_add_config_presets").First(&record).Error; err == nil {
|
|
logging.Info("Config presets migration already applied, skipping")
|
|
return nil
|
|
}
|
|
|
|
record = MigrationRecord{
|
|
MigrationName: "007_add_config_presets",
|
|
AppliedAt: time.Now().UTC().Format(time.RFC3339),
|
|
Success: true,
|
|
Notes: "Added ConfigPreset table via GORM AutoMigrate",
|
|
}
|
|
if err := db.Create(&record).Error; err != nil {
|
|
return fmt.Errorf("failed to record migration 007: %v", err)
|
|
}
|
|
|
|
logging.Info("Config presets migration recorded")
|
|
return nil
|
|
}
|