Documentation
¶
Index ¶
- type Config
- type Manager
- func (m *Manager) CreateMigration(name string) error
- func (m *Manager) GetMigrationHistory() []MigrationExecution
- func (m *Manager) GetMigrationInfo() (*MigrationInfo, error)
- func (m *Manager) GetMigrationMetrics() map[string]interface{}
- func (m *Manager) PostValidateMigrations() error
- func (m *Manager) PreValidateMigrations() error
- func (m *Manager) Reset() error
- func (m *Manager) Rollback(targetVersion uint) error
- func (m *Manager) Run() error
- func (m *Manager) ValidateMigrations() error
- type MigrationExecution
- type MigrationInfo
- type MigrationStatus
- type MigrationValidationResult
- type MigrationsMetricsCollector
- func (mmc *MigrationsMetricsCollector) RecordMigration(service, direction string, version uint, duration time.Duration)
- func (mmc *MigrationsMetricsCollector) RecordMigrationSuccess(service string, duration time.Duration)
- func (mmc *MigrationsMetricsCollector) RecordRollback()
- func (mmc *MigrationsMetricsCollector) RecordValidationFailure()
- type ValidationIssue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { DatabaseURL string DatabaseMode string // "single" or "multi" DatabaseSchema string // for single mode MigrationsPath string ServiceName string AutoMigrate bool TargetVersion uint // 0 means latest // Configuración avanzada Environment string EnableMetrics bool EnableValidation bool EnableRollback bool EnableDryRun bool MaxRetryAttempts int BackupBeforeMigration bool ValidationTimeout time.Duration LockTimeout time.Duration // Integración con gopherkit BaseConfig *config.BaseConfig AlertManager *monitoring.AlertManager }
Config holds migration configuration with enhanced options
func LoadConfigFromBase ¶
func LoadConfigFromBase(baseConfig *config.BaseConfig, serviceName string) *Config
LoadConfigFromBase carga configuración desde BaseConfig de gopherkit
func LoadDefaultConfig ¶
func LoadDefaultConfig() *Config
LoadDefaultConfig loads migration configuration from environment with enhanced options
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles database migrations with advanced features for both single and multi database modes
func NewManager ¶
NewManager creates a new migration manager with enhanced capabilities
func (*Manager) CreateMigration ¶
CreateMigration creates a new migration file with enhanced templates
func (*Manager) GetMigrationHistory ¶
func (m *Manager) GetMigrationHistory() []MigrationExecution
GetMigrationHistory retorna el historial de ejecuciones de migraciones
func (*Manager) GetMigrationInfo ¶
func (m *Manager) GetMigrationInfo() (*MigrationInfo, error)
GetMigrationInfo returns comprehensive information about current migrations
func (*Manager) GetMigrationMetrics ¶
GetMigrationMetrics retorna métricas del migration manager
func (*Manager) PostValidateMigrations ¶
PostValidateMigrations valida el estado después de ejecutar migraciones
func (*Manager) PreValidateMigrations ¶
PreValidateMigrations valida las migraciones antes de ejecutarlas
func (*Manager) Reset ¶
Reset drops all tables and re-runs migrations with enhanced safety (dangerous!)
func (*Manager) ValidateMigrations ¶
ValidateMigrations checks if migrations are consistent with enhanced validation
type MigrationExecution ¶
type MigrationExecution struct { ID string `json:"id"` Version uint `json:"version"` Direction string `json:"direction"` // "up" or "down" StartedAt time.Time `json:"started_at"` CompletedAt *time.Time `json:"completed_at,omitempty"` Duration time.Duration `json:"duration"` Status MigrationStatus `json:"status"` Error string `json:"error,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` ServiceName string `json:"service_name"` DatabaseMode string `json:"database_mode"` Schema string `json:"schema,omitempty"` }
MigrationExecution represents a migration execution record
type MigrationInfo ¶
type MigrationInfo struct { Version uint `json:"version"` Dirty bool `json:"dirty"` AppliedAt time.Time `json:"applied_at"` Source string `json:"source"` ExecutionTime time.Duration `json:"execution_time"` Status MigrationStatus `json:"status"` ErrorMessage string `json:"error_message,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` Checksum string `json:"checksum,omitempty"` RollbackPath string `json:"rollback_path,omitempty"` }
MigrationInfo holds comprehensive information about a migration
type MigrationStatus ¶
type MigrationStatus string
MigrationStatus representa el estado de una migración
const ( StatusPending MigrationStatus = "pending" StatusRunning MigrationStatus = "running" StatusCompleted MigrationStatus = "completed" StatusFailed MigrationStatus = "failed" StatusRolledBack MigrationStatus = "rolled_back" StatusSkipped MigrationStatus = "skipped" )
type MigrationValidationResult ¶
type MigrationValidationResult struct { Valid bool `json:"valid"` Issues []ValidationIssue `json:"issues,omitempty"` Warnings []string `json:"warnings,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` ValidatedAt time.Time `json:"validated_at"` }
MigrationValidationResult representa el resultado de validación de una migración
type MigrationsMetricsCollector ¶
type MigrationsMetricsCollector struct {
// contains filtered or unexported fields
}
MigrationsMetricsCollector recopila métricas de migraciones para Prometheus
func NewMigrationsMetricsCollector ¶
func NewMigrationsMetricsCollector(serviceName string) *MigrationsMetricsCollector
NewMigrationsMetricsCollector crea un recolector de métricas para migraciones
func (*MigrationsMetricsCollector) RecordMigration ¶
func (mmc *MigrationsMetricsCollector) RecordMigration(service, direction string, version uint, duration time.Duration)
RecordMigration registra una migración en las métricas
func (*MigrationsMetricsCollector) RecordMigrationSuccess ¶
func (mmc *MigrationsMetricsCollector) RecordMigrationSuccess(service string, duration time.Duration)
RecordMigrationSuccess registra una migración exitosa
func (*MigrationsMetricsCollector) RecordRollback ¶
func (mmc *MigrationsMetricsCollector) RecordRollback()
RecordRollback registra un rollback
func (*MigrationsMetricsCollector) RecordValidationFailure ¶
func (mmc *MigrationsMetricsCollector) RecordValidationFailure()
RecordValidationFailure registra un fallo de validación
type ValidationIssue ¶
type ValidationIssue struct { Type string `json:"type"` Severity string `json:"severity"` // "error", "warning", "info" Message string `json:"message"` Suggestion string `json:"suggestion,omitempty"` Line int `json:"line,omitempty"` Column int `json:"column,omitempty"` }
ValidationIssue representa un problema encontrado durante la validación