Files
hanzoai_agent/control-plane/internal/storage/migrations.go
zeekay 9556032ab1 feat: add cloud instance provisioning with billing integration
Multi-platform cloud bot provisioning (Linux K8s pods, Windows/macOS
EC2), billing authorization via bootnode API, usage metering, and
real-time monitoring. Includes REST + UI APIs, SSE events, dedicated
host pooling for macOS, and per-tier compute quotas.
2026-02-13 15:33:35 -08:00

58 lines
1.4 KiB
Go

package storage
import (
"context"
"fmt"
)
func (ls *LocalStorage) autoMigrateSchema(ctx context.Context) error {
gormDB, err := ls.gormWithContext(ctx)
if err != nil {
return fmt.Errorf("failed to initialize gorm for migrations: %w", err)
}
if ls.mode == "local" {
if err := gormDB.Exec("PRAGMA foreign_keys = OFF").Error; err != nil {
return fmt.Errorf("failed to disable foreign keys: %w", err)
}
defer func() {
if err := gormDB.Exec("PRAGMA foreign_keys = ON").Error; err != nil {
fmt.Printf("failed to re-enable foreign keys: %v\n", err)
}
}()
}
models := []interface{}{
&ExecutionRecordModel{},
&AgentExecutionModel{},
&AgentNodeModel{},
&AgentConfigurationModel{},
&AgentPackageModel{},
&WorkflowExecutionModel{},
&WorkflowExecutionEventModel{},
&WorkflowRunEventModel{},
&WorkflowRunModel{},
&WorkflowStepModel{},
&WorkflowModel{},
&SessionModel{},
&DIDRegistryModel{},
&AgentDIDModel{},
&ComponentDIDModel{},
&ExecutionVCModel{},
&WorkflowVCModel{},
&SchemaMigrationModel{},
&ExecutionWebhookEventModel{},
&ExecutionWebhookModel{},
&ObservabilityWebhookModel{},
&ObservabilityDeadLetterQueueModel{},
&CloudInstanceModel{},
&DedicatedHostModel{},
}
if err := gormDB.WithContext(ctx).AutoMigrate(models...); err != nil {
return fmt.Errorf("failed to auto-migrate schema: %w", err)
}
return nil
}