Files
2025-12-26 18:17:58 +03:00

2.0 KiB

Data Model: Migration Process and UI Redesign

Entities

Environment

Represents a Superset instance.

Field Type Description
id UUID Primary Key
name String Display name (e.g., "Development", "Production")
url String Base URL of the Superset instance
credentials_id String Reference to encrypted credentials in the config manager

DatabaseMapping

Represents a mapping between a database in the source environment and a database in the target environment.

Field Type Description
id UUID Primary Key
source_env_id UUID Foreign Key to Environment (Source)
target_env_id UUID Foreign Key to Environment (Target)
source_db_uuid String UUID of the database in the source environment
target_db_uuid String UUID of the database in the target environment
source_db_name String Name of the database in the source environment (for UI)
target_db_name String Name of the database in the target environment (for UI)
engine String Database engine type (e.g., "clickhouse", "postgres")

MigrationJob

Represents a single migration execution.

Field Type Description
id UUID Primary Key
source_env_id UUID Foreign Key to Environment
target_env_id UUID Foreign Key to Environment
status Enum PENDING, RUNNING, COMPLETED, FAILED, AWAITING_MAPPING
replace_db Boolean Whether to apply database mappings
created_at DateTime Timestamp of creation

Relationships

  • DatabaseMapping belongs to a pair of Environments.
  • MigrationJob references two Environments.

Validation Rules

  • source_env_id and target_env_id must be different.
  • source_db_uuid and target_db_uuid must belong to databases with compatible engines (optional warning).
  • Mappings must be unique for a given (source_env_id, target_env_id, source_db_uuid) triplet.