Files
ss-tools/logs/лог.md
busya 2ffc3cc68f feat(migration): implement interactive mapping resolution workflow
- Add SQLite database integration for environments and mappings
- Update TaskManager to support pausing tasks (AWAITING_MAPPING)
- Modify MigrationPlugin to detect missing mappings and wait for resolution
- Add frontend UI for handling missing mappings interactively
- Create dedicated migration routes and API endpoints
- Update .gitignore and project documentation
2025-12-25 22:27:29 +03:00

23 KiB
Executable File
Raw Permalink Blame History

PS H:\dev\ss-tools> & C:/ProgramData/anaconda3/python.exe h:/dev/ss-tools/migration_script.py 2025-12-16 11:50:28,192 - INFO - [run][Entry] Запуск скрипта миграции.

=== Поведение при ошибке импорта === Если импорт завершится ошибкой, удалить существующий дашборд и попытаться импортировать заново? (y/n): n 2025-12-16 11:50:33,363 - INFO - [ask_delete_on_failure][State] Delete-on-failure = False 2025-12-16 11:50:33,368 - INFO - [select_environments][Entry] Шаг 1/5: Выбор окружений. 2025-12-16 11:50:33,374 - INFO - [setup_clients][Enter] Starting Superset clients initialization. 2025-12-16 11:50:33,730 - INFO - [SupersetClient.init][Enter] Initializing SupersetClient. 2025-12-16 11:50:33,734 - INFO - [APIClient.init][Entry] Initializing APIClient. 2025-12-16 11:50:33,739 - WARNING - [_init_session][State] SSL verification disabled. 2025-12-16 11:50:33,742 - INFO - [APIClient.init][Exit] APIClient initialized. 2025-12-16 11:50:33,746 - INFO - [SupersetClient.init][Exit] SupersetClient initialized. 2025-12-16 11:50:33,750 - INFO - [SupersetClient.init][Enter] Initializing SupersetClient. 2025-12-16 11:50:33,754 - INFO - [APIClient.init][Entry] Initializing APIClient. 2025-12-16 11:50:33,758 - WARNING - [_init_session][State] SSL verification disabled. 2025-12-16 11:50:33,761 - INFO - [APIClient.init][Exit] APIClient initialized. 2025-12-16 11:50:33,764 - INFO - [SupersetClient.init][Exit] SupersetClient initialized. 2025-12-16 11:50:33,769 - INFO - [SupersetClient.init][Enter] Initializing SupersetClient. 2025-12-16 11:50:33,772 - INFO - [APIClient.init][Entry] Initializing APIClient. 2025-12-16 11:50:33,776 - WARNING - [_init_session][State] SSL verification disabled. 2025-12-16 11:50:33,779 - INFO - [APIClient.init][Exit] APIClient initialized. 2025-12-16 11:50:33,782 - INFO - [SupersetClient.init][Exit] SupersetClient initialized. 2025-12-16 11:50:33,786 - INFO - [SupersetClient.init][Enter] Initializing SupersetClient. 2025-12-16 11:50:33,790 - INFO - [APIClient.init][Entry] Initializing APIClient. 2025-12-16 11:50:33,794 - WARNING - [_init_session][State] SSL verification disabled. 2025-12-16 11:50:33,799 - INFO - [APIClient.init][Exit] APIClient initialized. 2025-12-16 11:50:33,805 - INFO - [SupersetClient.init][Exit] SupersetClient initialized. 2025-12-16 11:50:33,808 - INFO - [SupersetClient.init][Enter] Initializing SupersetClient. 2025-12-16 11:50:33,811 - INFO - [APIClient.init][Entry] Initializing APIClient. 2025-12-16 11:50:33,815 - WARNING - [_init_session][State] SSL verification disabled. 2025-12-16 11:50:33,820 - INFO - [APIClient.init][Exit] APIClient initialized. 2025-12-16 11:50:33,823 - INFO - [SupersetClient.init][Exit] SupersetClient initialized. 2025-12-16 11:50:33,827 - INFO - [SupersetClient.init][Enter] Initializing SupersetClient. 2025-12-16 11:50:33,831 - INFO - [APIClient.init][Entry] Initializing APIClient. 2025-12-16 11:50:33,834 - WARNING - [_init_session][State] SSL verification disabled. 2025-12-16 11:50:33,838 - INFO - [APIClient.init][Exit] APIClient initialized. 2025-12-16 11:50:33,840 - INFO - [SupersetClient.init][Exit] SupersetClient initialized. 2025-12-16 11:50:33,847 - INFO - [setup_clients][Exit] All clients (dev, prod, sbx, preprod, uatta, dev5) initialized successfully.

=== Выбор окружения === Исходное окружение:

  1. dev
  2. prod
  3. sbx
  4. preprod
  5. uatta
  6. dev5

Введите номер (0 отмена): 4 2025-12-16 11:50:42,379 - INFO - [select_environments][State] from = preprod

=== Выбор окружения === Целевое окружение:

  1. dev
  2. prod
  3. sbx
  4. uatta
  5. dev5

Введите номер (0 отмена): 5 2025-12-16 11:50:45,176 - INFO - [select_environments][State] to = dev5 2025-12-16 11:50:45,182 - INFO - [select_environments][Exit] Шаг 1 завершён. 2025-12-16 11:50:45,186 - INFO - [select_dashboards][Entry] Шаг 2/5: Выбор дашбордов. 2025-12-16 11:50:45,190 - INFO - [get_dashboards][Enter] Fetching dashboards. 2025-12-16 11:50:45,197 - INFO - [authenticate][Enter] Authenticating to https://preprodta.bi.dwh.rusal.com/api/v1 2025-12-16 11:50:45,880 - INFO - [authenticate][Exit] Authenticated successfully. 2025-12-16 11:50:46,025 - INFO - [get_dashboards][Exit] Found 95 dashboards.

=== Поиск === Введите регулярное выражение для поиска дашбордов: fi

=== Выбор дашбордов === Отметьте нужные дашборды (введите номера):

  1. [ALL] Все дашборды
  2. [185] FI-0060 Финансы. Налоги. Данные по налогам. Старый
  3. [184] FI-0083 Статистика по ДЗ/ПДЗ
  4. [187] FI-0081 ПДЗ Казначейство
  5. [122] FI-0080 Финансы. Оборотный Капитал ДЗ/КЗ
  6. [208] FI-0020 Просроченная дебиторская и кредиторская задолженность в динамике
  7. [126] FI-0022 Кредиторская задолженность для казначейства
  8. [196] FI-0023 Дебиторская задолженность для казначейства
  9. [113] FI-0060 Финансы. Налоги. Данные по налогам.
  10. [173] FI-0040 Оборотно-сальдовая ведомость (ОСВ) по контрагентам
  11. [174] FI-0021 Дебиторская и кредиторская задолженность по документам
  12. [172] FI-0030 Дебиторская задолженность по штрафам
  13. [170] FI-0050 Налог на прибыль (ОНА и ОНО)
  14. [159] FI-0070 Досье контрагента

Введите номера через запятую (пустой ввод → отказ): 2 2025-12-16 11:50:52,235 - INFO - [select_dashboards][State] Выбрано 1 дашбордов. 2025-12-16 11:50:52,242 - INFO - [select_dashboards][Exit] Шаг 2 завершён.

=== Замена БД === Заменить конфигурацию БД в YAMLфайлах? (y/n): y 2025-12-16 11:50:53,808 - INFO - [_select_databases][Entry] Selecting databases from both environments. 2025-12-16 11:50:53,816 - INFO - [get_databases][Enter] Fetching databases. 2025-12-16 11:50:53,918 - INFO - [get_databases][Exit] Found 12 databases. 2025-12-16 11:50:53,923 - INFO - [get_databases][Enter] Fetching databases. 2025-12-16 11:50:53,926 - INFO - [authenticate][Enter] Authenticating to https://dev.bi.dwh.rusal.com/api/v1 2025-12-16 11:50:54,450 - INFO - [authenticate][Exit] Authenticated successfully. 2025-12-16 11:50:54,551 - INFO - [get_databases][Exit] Found 4 databases.

=== Выбор исходной БД === Выберите исходную БД:

  1. DEV datalab (ID: 9)
  2. Prod Greenplum (ID: 7)
  3. DEV Clickhouse New (OLD) (ID: 16)
  4. Preprod Clickhouse New (ID: 15)
  5. DEV Greenplum (ID: 1)
  6. Prod Clickhouse Node 1 (ID: 11)
  7. Preprod Postgre Superset Internal (ID: 5)
  8. Prod Postgre Superset Internal (ID: 28)
  9. Prod Clickhouse (ID: 10)
  10. Dev Clickhouse (correct) (ID: 14)
  11. DEV ClickHouse New (ID: 23)
  12. Sandbox Postgre Superset Internal (ID: 12)

Введите номер (0 отмена): 9 2025-12-16 11:51:11,008 - INFO - [get_database][Enter] Fetching database 10. 2025-12-16 11:51:11,038 - INFO - [get_database][Exit] Got database 10.

=== Выбор целевой БД === Выберите целевую БД:

  1. DEV Greenplum (ID: 2)
  2. DEV Clickhouse (ID: 3)
  3. DEV ClickHouse New (ID: 4)
  4. Dev Postgre Superset Internal (ID: 1)

Введите номер (0 отмена): 2 2025-12-16 11:51:15,559 - INFO - [get_database][Enter] Fetching database 3. 2025-12-16 11:51:15,586 - INFO - [get_database][Exit] Got database 3. 2025-12-16 11:51:15,589 - INFO - [_select_databases][Exit] Selected databases: Без имени -> Без имени old_db: {'id': 10, 'result': {'allow_ctas': False, 'allow_cvas': False, 'allow_dml': True, 'allow_file_upload': False, 'allow_run_async': False, 'backen d': 'clickhousedb', 'cache_timeout': None, 'configuration_method': 'sqlalchemy_form', 'database_name': 'Prod Clickhouse', 'driver': 'connect', 'engine_i nformation': {'disable_ssh_tunneling': False, 'supports_file_upload': False}, 'expose_in_sqllab': True, 'force_ctas_schema': None, 'id': 10, 'impersonat e_user': False, 'is_managed_externally': False, 'uuid': '97aced68-326a-4094-b381-27980560efa9'}} 2025-12-16 11:51:15,591 - INFO - [confirm_db_config_replacement][State] Replacement set: {'old': {'database_name': None, 'uuid': None, 'id': '10'}, 'new ': {'database_name': None, 'uuid': None, 'id': '3'}} 2025-12-16 11:51:15,594 - INFO - [execute_migration][Entry] Starting migration of 1 dashboards.

=== Миграция... ===
Миграция: FI-0060 Финансы. Налоги. Данные по налогам. Старый (1/1) 0%2025-12-16 11:51:15,598 - INFO - [export_dashboard][Enter] Exporting dashboard 185.
2025-12-16 11:51:16,142 - INFO - [export_dashboard][Exit] Exported dashboard 185 to dashboard_export_20251216T085115.zip.
2025-12-16 11:51:16,205 - INFO - [update_yamls][Enter] Starting YAML configuration update.
2025-12-16 11:51:16,208 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\metadata.yaml
2025-12-16 11:51:16,209 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-01_2787.yaml
2025-12-16 11:51:16,210 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-01_2_4030.yaml
2025-12-16 11:51:16,212 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-01_4029.yaml
2025-12-16 11:51:16,213 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-01_TOTAL2_4036.yaml
2025-12-16 11:51:16,215 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-01_TOTAL2_4037.yaml
2025-12-16 11:51:16,216 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-01_TOTAL_4028.yaml
2025-12-16 11:51:16,217 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-01_ZNODE_ROOT2_4024.yaml
2025-12-16 11:51:16,218 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-01_ZNODE_ROOT_4033.yaml
2025-12-16 11:51:16,220 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-02_ZFUND-BD2_4021.yaml
2025-12-16 11:51:16,221 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-02_ZFUND_4027.yaml
2025-12-16 11:51:16,222 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02-02_ZFUND_4034.yaml
2025-12-16 11:51:16,224 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02_ZTAX_4022.yaml
2025-12-16 11:51:16,226 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-02_ZTAX_4035.yaml
2025-12-16 11:51:16,227 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-04-2_4031.yaml
2025-12-16 11:51:16,228 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-05-01_4026.yaml
2025-12-16 11:51:16,230 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-05-01_4032.yaml
2025-12-16 11:51:16,231 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-06_1_4023.yaml
2025-12-16 11:51:16,233 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060-06_2_4020.yaml
2025-12-16 11:51:16,234 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\charts\FI-0060_4025.yaml
2025-12-16 11:51:16,236 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\dashboards\FI-0060_185.yaml
2025-12-16 11:51:16,238 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\databases\Prod_Clickhouse_10.yaml
2025-12-16 11:51:16,240 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
20251216T085115\datasets\Prod_Clickhouse_10\FI-0000-_685.yaml
2025-12-16 11:51:16,241 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-01-2_zfund_reciever-_861.yaml
2025-12-16 11:51:16,242 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-01_zfund_reciever_click_689.yaml
2025-12-16 11:51:16,244 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-02_680.yaml
2025-12-16 11:51:16,245 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-03_ztax_862.yaml
2025-12-16 11:51:16,246 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-04_zpbe_681.yaml
2025-12-16 11:51:16,247 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-05_ZTAXZFUND_679.yaml
2025-12-16 11:51:16,249 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-06_860.yaml
2025-12-16 11:51:16,250 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-08_682.yaml
2025-12-16 11:51:16,251 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-10_zpbe_688.yaml
2025-12-16 11:51:16,253 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060-11_ZTAX_NAME_863.yaml
2025-12-16 11:51:16,254 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060_683.yaml
2025-12-16 11:51:16,255 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060_684.yaml
2025-12-16 11:51:16,256 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060_686.yaml
2025-12-16 11:51:16,258 - INFO - [_update_yaml_file][State] Replaced '10' with '3' for key id in C:\Users\LO54FB~1\Temp\tmpuidfegpd.dir\dashboard_export
_20251216T085115\datasets\Prod_Clickhouse_10\FI-0060_690.yaml
2025-12-16 11:51:16,259 - INFO - [create_dashboard_export][Enter] Packing dashboard: ['C:\Users\LO54FB1\Temp\tmpuidfegpd.dir'] -> C:\Users\LO54FB1
\Temp\tmps7cuv2ti.zip
2025-12-16 11:51:16,347 - INFO - [create_dashboard_export][Exit] Archive created: C:\Users\LO54FB~1\Temp\tmps7cuv2ti.zip
2025-12-16 11:51:16,372 - ERROR - [import_dashboard][Failure] First import attempt failed: [API_FAILURE] API error during upload: {"errors": [{"message"
"Expecting value: line 1 column 1 (char 0)", "error_type": "GENERIC_BACKEND_ERROR", "level": "error", "extra": {"issue_codes": [{"code": 1011, "messag e": "Issue 1011 - \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448 \u0438\u0431\u043a\u0430."}]}}]} | Context: {'type': 'api_call'} Traceback (most recent call last): File "h:\dev\ss-tools\superset_tool\utils\network.py", line 186, in _perform_upload response.raise_for_status() File "C:\ProgramData\anaconda3\Lib\site-packages\requests\models.py", line 1021, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 500 Server Error: INTERNAL SERVER ERROR for url: https://dev.bi.dwh.rusal.com/api/v1/dashboard/import/

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "h:\dev\ss-tools\superset_tool\client.py", line 141, in import_dashboard return self._do_import(file_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "h:\dev\ss-tools\superset_tool\client.py", line 197, in _do_import return self.network.upload_file( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "h:\dev\ss-tools\superset_tool\utils\network.py", line 172, in upload_file return self._perform_upload(full_url, files_payload, extra_data, _headers, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "h:\dev\ss-tools\superset_tool\utils\network.py", line 196, in _perform_upload raise SupersetAPIError(f"API error during upload: {e.response.text}") from e superset_tool.exceptions.SupersetAPIError: [API_FAILURE] API error during upload: {"errors": [{"message": "Expecting value: line 1 column 1 (char 0)", " error_type": "GENERIC_BACKEND_ERROR", "level": "error", "extra": {"issue_codes": [{"code": 1011, "message": "Issue 1011 - \u041f\u0440\u043e\u0438\u0437 \u043e\u0448\u043b\u0430 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."}]}}]} | Context: {'ty pe': 'api_call'} 2025-12-16 11:51:16,511 - ERROR - [execute_migration][Failure] [API_FAILURE] API error during upload: {"errors": [{"message": "Expecting value: line 1 c olumn 1 (char 0)", "error_type": "GENERIC_BACKEND_ERROR", "level": "error", "extra": {"issue_codes": [{"code": 1011, "message": "Issue 1011 - \u041f\u04 40\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."}] }}]} | Context: {'type': 'api_call'} Traceback (most recent call last): File "h:\dev\ss-tools\superset_tool\utils\network.py", line 186, in _perform_upload response.raise_for_status() File "C:\ProgramData\anaconda3\Lib\site-packages\requests\models.py", line 1021, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 500 Server Error: INTERNAL SERVER ERROR for url: https://dev.bi.dwh.rusal.com/api/v1/dashboard/import/

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "h:\dev\ss-tools\migration_script.py", line 366, in execute_migration self.to_c.import_dashboard(file_name=tmp_new_zip, dash_id=dash_id, dash_slug=dash_slug) File "h:\dev\ss-tools\superset_tool\client.py", line 141, in import_dashboard return self._do_import(file_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "h:\dev\ss-tools\superset_tool\client.py", line 197, in _do_import return self.network.upload_file( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "h:\dev\ss-tools\superset_tool\utils\network.py", line 172, in upload_file return self._perform_upload(full_url, files_payload, extra_data, _headers, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "h:\dev\ss-tools\superset_tool\utils\network.py", line 196, in _perform_upload raise SupersetAPIError(f"API error during upload: {e.response.text}") from e superset_tool.exceptions.SupersetAPIError: [API_FAILURE] API error during upload: {"errors": [{"message": "Expecting value: line 1 column 1 (char 0)", " error_type": "GENERIC_BACKEND_ERROR", "level": "error", "extra": {"issue_codes": [{"code": 1011, "message": "Issue 1011 - \u041f\u0440\u043e\u0438\u0437 \u043e\u0448\u043b\u0430 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."}]}}]} | Context: {'ty pe': 'api_call'}

=== Ошибка === Не удалось мигрировать дашборд FI-0060 Финансы. Налоги. Данные по налогам. Старый.

[API_FAILURE] API error during upload: {"errors": [{"message": "Expecting value: line 1 column 1 (char 0)", "error_type": "GENERIC_BACKEND_ERROR", "leve l": "error", "extra": {"issue_codes": [{"code": 1011, "message": "Issue 1011 - \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043d\u0435\u0438 \u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."}]}}]} | Context: {'type': 'api_call'}

100% 2025-12-16 11:51:16,598 - INFO - [execute_migration][Exit] Migration finished.

=== Информация === Миграция завершена!

2025-12-16 11:51:16,605 - INFO - [run][Exit] Скрипт миграции завершён.