feat(delivery): integrate PostgreSQL delivery
This commit is contained in:
@@ -39,12 +39,14 @@ type DeliveryTask struct {
|
||||
RequestedBy uint64 `gorm:"not null;index" json:"requested_by"`
|
||||
Component string `gorm:"size:32;not null;default:mysql;index" json:"component"`
|
||||
TargetType string `gorm:"size:32;not null" json:"target_type"`
|
||||
ServiceType string `gorm:"size:32;not null;default:'mysql';index" json:"service_type"`
|
||||
TargetID uint64 `gorm:"not null;index" json:"target_id"`
|
||||
Namespace string `gorm:"size:63;not null;index" json:"namespace"`
|
||||
InstanceName string `gorm:"size:63;not null" json:"instance_name"`
|
||||
TargetHost string `gorm:"size:128" json:"target_host,omitempty"`
|
||||
TargetHost string `gorm:"size:1024" json:"target_host,omitempty"`
|
||||
TargetHostIP string `gorm:"size:64" json:"target_host_ip,omitempty"`
|
||||
MySQLPort int `gorm:"column:mysql_port;not null;default:3307" json:"mysql_port"`
|
||||
PostgreSQLPort int `gorm:"column:postgresql_port;not null;default:15432" json:"postgresql_port,omitempty"`
|
||||
Status string `gorm:"size:32;not null;index" json:"status"`
|
||||
ImmutablePayload string `gorm:"type:json;not null" json:"immutable_payload"`
|
||||
PayloadHash string `gorm:"size:64;not null" json:"payload_hash"`
|
||||
@@ -126,6 +128,69 @@ type DeploymentCredential struct {
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type PostgreSQLCluster struct {
|
||||
ID uint64 `gorm:"primaryKey" json:"id"`
|
||||
TaskID string `gorm:"size:36;not null;uniqueIndex" json:"task_id"`
|
||||
BusinessLineID uint64 `gorm:"not null;index" json:"business_line_id"`
|
||||
TargetID uint64 `gorm:"not null;index" json:"target_id"`
|
||||
Name string `gorm:"size:63;not null;uniqueIndex" json:"name"`
|
||||
VersionMajor string `gorm:"size:8;not null" json:"version_major"`
|
||||
Topology string `gorm:"size:32;not null" json:"topology"`
|
||||
ReplicationMode string `gorm:"size:32;not null;default:'async'" json:"replication_mode"`
|
||||
FailoverMode string `gorm:"size:32;not null;default:'manual'" json:"failover_mode"`
|
||||
PrimaryInstanceID uint64 `gorm:"not null;default:0" json:"primary_instance_id"`
|
||||
Status string `gorm:"size:32;not null;index" json:"status"`
|
||||
BackupStatus string `gorm:"size:32;not null;default:'not_configured'" json:"backup_status"`
|
||||
MonitoringStatus string `gorm:"size:32;not null;default:'not_configured'" json:"monitoring_status"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type PostgreSQLInstance struct {
|
||||
ID uint64 `gorm:"primaryKey" json:"id"`
|
||||
TaskID string `gorm:"size:36;not null;index" json:"task_id"`
|
||||
ClusterID uint64 `gorm:"not null;index" json:"cluster_id"`
|
||||
BusinessLineID uint64 `gorm:"not null;index" json:"business_line_id"`
|
||||
TargetID uint64 `gorm:"not null;index" json:"target_id"`
|
||||
InstanceID string `gorm:"size:63;not null;uniqueIndex" json:"instance_id"`
|
||||
Hostname string `gorm:"size:255;not null;uniqueIndex:idx_postgresql_host_port,priority:1" json:"hostname"`
|
||||
HostIP string `gorm:"size:64;not null" json:"host_ip"`
|
||||
Port int `gorm:"not null;index:idx_postgresql_host_port,priority:2" json:"port"`
|
||||
DataDir string `gorm:"size:512;not null;uniqueIndex" json:"data_dir"`
|
||||
ConfigDir string `gorm:"size:512;not null" json:"config_dir"`
|
||||
LogDir string `gorm:"size:512;not null" json:"log_dir"`
|
||||
SystemdUnit string `gorm:"size:128;not null" json:"systemd_unit"`
|
||||
VersionMajor string `gorm:"size:8;not null" json:"version_major"`
|
||||
VersionFull string `gorm:"size:32;not null;default:''" json:"version_full"`
|
||||
Role string `gorm:"size:16;not null" json:"role"`
|
||||
HAComponentRole string `gorm:"size:16;not null;default:'database'" json:"ha_component_role"`
|
||||
UpstreamInstanceID string `gorm:"size:63;not null;default:''" json:"upstream_instance_id"`
|
||||
ReplicationSlotName string `gorm:"size:63;not null;default:''" json:"replication_slot_name"`
|
||||
Status string `gorm:"size:32;not null;index" json:"status"`
|
||||
BackupStatus string `gorm:"size:32;not null;default:'not_configured'" json:"backup_status"`
|
||||
MonitoringStatus string `gorm:"size:32;not null;default:'not_configured'" json:"monitoring_status"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type PostgreSQLResourceUsage struct {
|
||||
ID uint64 `gorm:"primaryKey" json:"id"`
|
||||
TaskID string `gorm:"size:36;not null;index" json:"task_id"`
|
||||
InstanceID uint64 `gorm:"not null;uniqueIndex" json:"instance_id"`
|
||||
ClusterID uint64 `gorm:"not null;index" json:"cluster_id"`
|
||||
BusinessLineID uint64 `gorm:"not null;index" json:"business_line_id"`
|
||||
TargetID uint64 `gorm:"not null;index" json:"target_id"`
|
||||
CPUMilli int64 `gorm:"not null" json:"cpu_milli"`
|
||||
MemoryMi int64 `gorm:"not null" json:"memory_mi"`
|
||||
StorageGi int64 `gorm:"not null" json:"storage_gi"`
|
||||
Port int `gorm:"not null" json:"port"`
|
||||
DataDir string `gorm:"size:512;not null" json:"data_dir"`
|
||||
Status string `gorm:"size:32;not null;index" json:"status"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
ReleasedAt *time.Time `json:"released_at,omitempty"`
|
||||
}
|
||||
|
||||
type ExecutionJob struct {
|
||||
ID uint64 `gorm:"primaryKey" json:"id"`
|
||||
TaskID string `gorm:"size:36;not null;uniqueIndex" json:"task_id"`
|
||||
|
||||
Reference in New Issue
Block a user