Работающий импорт с изменением БД

This commit is contained in:
Volobuev Andrey
2025-04-04 09:19:37 +03:00
parent 992073d2f5
commit 6ffc432b42
8 changed files with 491 additions and 266 deletions

View File

@@ -25,6 +25,18 @@ def setup_clients():
"""Инициализация клиентов для разных окружений"""
clients = {}
try:
# Конфигурация для Prod
prod_config = SupersetConfig(
base_url="https://prodta.bi.dwh.rusal.com/api/v1",
auth={
"provider": "db",
"username": "migrate_user",
"password": keyring.get_password("system", "prod migrate"),
"refresh": True
},
verify_ssl=False
)
# Конфигурация для Dev
dev_config = SupersetConfig(
base_url="https://devta.bi.dwh.rusal.com/api/v1",
@@ -37,17 +49,6 @@ def setup_clients():
verify_ssl=False
)
# Конфигурация для Prod
prod_config = SupersetConfig(
base_url="https://prodta.bi.dwh.rusal.com/api/v1",
auth={
"provider": "db",
"username": "migrate_user",
"password": keyring.get_password("system", "prod migrate"),
"refresh": True
},
verify_ssl=False
)
# Конфигурация для Sandbox
sandbox_config = SupersetConfig(
@@ -60,10 +61,19 @@ def setup_clients():
},
verify_ssl=False
)
clients['dev'] = SupersetClient(dev_config)
clients['sbx'] = SupersetClient(sandbox_config)
logger.info("Клиенты для окружений успешно инициализированы")
try:
clients['dev'] = SupersetClient(dev_config)
except Exception as e:
logger.error(f"Ошибка инициализации клиента: {str(e)}")
try:
clients['sbx'] = SupersetClient(sandbox_config)
except Exception as e:
logger.error(f"Ошибка инициализации клиента: {str(e)}")
try:
clients['prod'] = SupersetClient(prod_config)
except Exception as e:
logger.error(f"Ошибка инициализации клиента: {str(e)}")
return clients
except Exception as e:
logger.error(f"Ошибка инициализации клиентов: {str(e)}")
@@ -71,9 +81,9 @@ def setup_clients():
def backup_dashboards(client, env_name, backup_root):
"""Выполнение бэкапа дашбордов для указанного окружения"""
logger.info(f"Начало бэкапа для окружения {env_name}")
#logger.info(f"Начало бэкапа для окружения {env_name}")
print(client.get_dashboards())
#print(client.get_dashboards())
# dashboard_count,dashboard_meta = client.get_dashboards()
# total = 0
# success = 0
@@ -100,9 +110,16 @@ dev_success = backup_dashboards(
superset_backup_repo
)
# Бэкап для Sandbox
# sbx_success = backup_dashboards(
# clients['sbx'],
# "SBX",
# superset_backup_repo
# )
sbx_success = backup_dashboards(
clients['sbx'],
"SBX",
superset_backup_repo
)
prod_success = backup_dashboards(
clients['prod'],
"PROD",
superset_backup_repo
)