init
This commit is contained in:
99
migration_script.py
Normal file
99
migration_script.py
Normal file
@@ -0,0 +1,99 @@
|
||||
from superset_tool.models import SupersetConfig
|
||||
from superset_tool.client import SupersetClient
|
||||
from superset_tool.exceptions import AuthenticationError
|
||||
from superset_tool.utils.fileio import save_and_unpack_dashboard, update_db_yaml, archive_exports, sync_for_git
|
||||
import os
|
||||
import keyring
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
database_config={"PROD":
|
||||
{
|
||||
"database_name": "Prod Clickhouse",
|
||||
"sqlalchemy_uri": "clickhousedb+connect://clicketl:XXXXXXXXXX@rgm-s-khclk.hq.root.ad:443/dm",
|
||||
"uuid": "b9b67cb5-9874-4dc6-87bd-354fc33be6f9",
|
||||
"allow_ctas": "true",
|
||||
"allow_cvas": "true",
|
||||
"allow_dml": "true"
|
||||
},
|
||||
"DEV": {
|
||||
"database_name": "Dev Clickhouse",
|
||||
"sqlalchemy_uri": "clickhousedb+connect://dwhuser:XXXXXXXXXX@10.66.229.179:8123/dm",
|
||||
"uuid": "b9b67cb5-9874-4dc6-87bd-354fc33be6f9",
|
||||
"database_uuid": "b9b67cb5-9874-4dc6-87bd-354fc33be6f9",
|
||||
"allow_ctas": "true",
|
||||
"allow_cvas": "true",
|
||||
"allow_dml": "true"
|
||||
}
|
||||
}
|
||||
# Конфигурация для Dev
|
||||
dev_config = SupersetConfig(
|
||||
base_url="https://devta.bi.dwh.rusal.com/api/v1",
|
||||
auth={
|
||||
"provider": "db",
|
||||
"username": "migrate_user",
|
||||
"password": keyring.get_password("system", "dev migrate"),
|
||||
"refresh": True
|
||||
},
|
||||
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(
|
||||
base_url="https://sandboxta.bi.dwh.rusal.com/api/v1",
|
||||
auth={
|
||||
"provider": "db",
|
||||
"username": "migrate_user",
|
||||
"password": keyring.get_password("system", "sandbox migrate"),
|
||||
"refresh": True
|
||||
},
|
||||
verify_ssl=False
|
||||
)
|
||||
|
||||
# Инициализация клиента
|
||||
|
||||
dev_client = SupersetClient(dev_config)
|
||||
#prod_client = SupersetClient(prod_config)
|
||||
|
||||
dashboard_slug = "IM0010"
|
||||
#dashboard_id = 53
|
||||
|
||||
dashboard_meta = dev_client.get_dashboard(dashboard_slug)
|
||||
print(dashboard_meta)
|
||||
# print(dashboard_meta["dashboard_title"])
|
||||
|
||||
#dashboard_id = dashboard_meta["id"]
|
||||
# zip_content, filename = prod_client.export_dashboard(dashboard_id)
|
||||
# superset_repo = "H:\\Superset\\repo\\"
|
||||
# # print(f"Экспортируем дашборд ID = {dashboard_id}...")
|
||||
# # #Сохранение и распаковка
|
||||
# zip_path, unpacked_path = save_and_unpack_dashboard(
|
||||
# zip_content=zip_content,
|
||||
# original_filename=filename,
|
||||
# output_dir=f"dashboards\{dashboard_slug}"
|
||||
# )
|
||||
# dest_path = os.path.join(superset_repo,dashboard_slug)
|
||||
# source_path = os.path.join(unpacked_path,Path(filename).stem)
|
||||
# print(dest_path)
|
||||
# print(source_path)
|
||||
# sync_for_git(source_path=source_path,destination_path=dest_path,verbose=True)
|
||||
|
||||
# print(f"Сохранено в: {zip_path}")
|
||||
# print(f"Распаковано в: {unpacked_path}")
|
||||
# update_db_yaml(prod_config.database_config, path = unpacked_path,verbose=False)
|
||||
|
||||
# prod_client.import_dashboard(zip_path)
|
||||
|
||||
# archive_exports("dashboards", max_files=3)
|
||||
Reference in New Issue
Block a user