Files
1Panel/agent/init/migration/migrate.go
T
ssongliu e119239d3d refactor: manage firewall rules through runtime state and file backups (#13998)
Replace database rule synchronization with native rule operations and file-based backup, import, and recovery. Update firewall management views, descriptions, whitelist handling, and translations.

Include terminal reconnect fixes and xpack build tags for Darwin build targets. Remove temporary regression test files before committing.
2026-10-08 18:19:30 +08:00

148 lines
4.2 KiB
Go

package migration
import (
"github.com/1Panel-dev/1Panel/agent/global"
"github.com/1Panel-dev/1Panel/agent/init/migration/migrations"
"github.com/go-gormigrate/gormigrate/v2"
"gorm.io/gorm"
)
func Init() {
InitAgentDB()
InitTaskDB()
InitAlertDB()
global.LOG.Info("Migration run successfully")
}
func InitAgentDB() {
m := gormigrate.New(global.DB, gormigrate.DefaultOptions, agentDBMigrations())
if err := m.Migrate(); err != nil {
global.LOG.Error(err)
panic(err)
}
}
func agentDBMigrations() []*gormigrate.Migration {
return []*gormigrate.Migration{
migrations.AddTable,
migrations.AddMonitorTable,
migrations.InitSetting,
migrations.InitImageRepo,
migrations.InitDefaultCA,
migrations.InitPHPExtensions,
migrations.InitBackup,
migrations.InitDefault,
migrations.UpdateWebsiteExpireDate,
migrations.UpdateRuntime,
migrations.AddSnapshotRule,
migrations.UpdatePHPRuntime,
migrations.AddSnapshotIgnore,
migrations.InitAppLauncher,
migrations.AddTableAlert,
migrations.InitAlertConfig,
migrations.AddMethodToAlertLog,
migrations.AddMethodToAlertTask,
migrations.UpdateMcpServer,
migrations.InitCronjobGroup,
migrations.AddColumnToAlert,
migrations.UpdateWebsiteSSL,
migrations.AddQuickJump,
migrations.UpdateMcpServerAddType,
migrations.UpdateMcpServerGatewayConfig,
migrations.InitLocalSSHConn,
migrations.InitLocalSSHShow,
migrations.InitRecordStatus,
migrations.AddShowNameForQuickJump,
migrations.AddAgentQuickJump,
migrations.AddTimeoutForClam,
migrations.UpdateCronjobSpec,
migrations.UpdateWebsiteSSLAddColumn,
migrations.AddTensorRTLLMModel,
migrations.UpdateMonitorInterval,
migrations.AddMonitorProcess,
migrations.UpdateCronJob,
migrations.UpdateTensorrtLLM,
migrations.AddCommonDescription,
migrations.UpdateDatabase,
migrations.AddGPUMonitor,
migrations.UpdateDatabaseMysql,
migrations.AddDatabaseMongodb,
migrations.InitIptablesStatus,
migrations.UpdateWebsite,
migrations.AddisIPtoWebsiteSSL,
migrations.InitPingStatus,
migrations.UpdateApp,
migrations.AddCronjobArgs,
migrations.AddWebsiteAcmeAccountColumn,
migrations.AddAgentTables,
migrations.AddAgentCustomModelFields,
migrations.AddAppInstallSortOrder,
migrations.AddAgentAccountRememberAPIKey,
migrations.AddEditionSetting,
migrations.AddAgentTypeForAgents,
migrations.NormalizeAgentAccountVerifiedStatus,
migrations.NormalizeOllamaAccountAPIType,
migrations.InitAgentAccountModelPool,
migrations.AddAgentAccountMasterID,
migrations.NormalizeAgentAccountModelIDs,
migrations.AddAgentAccountVerifyModel,
migrations.AddAgentAccountAuthMode,
migrations.AddHostTable,
migrations.AddAITerminalSettings,
migrations.UpdateAgentQuickJumpTitle,
migrations.FixOpenclaw20260323HTTPPort,
migrations.AddAgentRemarkColumn,
migrations.AddAgentWebsiteBinding,
migrations.AddFileManageAISettings,
migrations.AddFileShareTable,
migrations.AddFileHistoryTable,
migrations.MigrateLegoV5,
migrations.AddMcpServerGatewayArgs,
migrations.InitFirewallPortWhiteList,
migrations.AddDatabaseUserTable,
migrations.AddBackupRecordArgs,
migrations.AddFtpIdentity,
migrations.AddWebsiteTemplateTable,
migrations.AddComposePinned,
migrations.AddFirewallRuleTable,
migrations.InitDockerPortGuardStatus,
migrations.NormalizeFirewallBackendSelections,
migrations.MigrateFirewallDescriptions,
migrations.MigrateFirewallPortWhitelistSources,
migrations.AddAcceleratorMetrics,
migrations.AddVLLMMonitor,
migrations.AddMonitorSettings,
}
}
func InitTaskDB() {
m := gormigrate.New(global.TaskDB, gormigrate.DefaultOptions, []*gormigrate.Migration{
migrations.AddTaskTable,
})
if err := m.Migrate(); err != nil {
global.LOG.Error(err)
panic(err)
}
}
func InitAlertDB() {
if err := migrateAlertDB(global.AlertDB); err != nil {
global.LOG.Error(err)
panic(err)
}
}
func migrateAlertDB(db *gorm.DB) error {
options := *gormigrate.DefaultOptions
options.UseTransaction = true
m := gormigrate.New(db, &options, []*gormigrate.Migration{
migrations.AddAlertConfigUIDAndSecret,
migrations.MigrateAlertMethodConfigIDs,
migrations.MigrateAlertLogTaskMethodConfigIDs,
migrations.AddAlertAuditUser,
migrations.AddAlertTaskDeliveryLogID,
})
return m.Migrate()
}