Общие сведения
В разделе рассматривается работа с инструментом восстановления базовых компонентов виджетов (далее – базовый компонент).
В модуле Dashboard предусмотрено 15 типов базовых компонентов:
- Линейчатая диаграмма (ECharts);
- Древовидная диаграмма (ECharts);
- Спидометр;
- Точечная диаграмма (ECharts);
- Паутина (ECharts);
- Прогресс-бар (ECharts);
- Круговая диаграмма (ECharts);
- Карта OSM;
- Линейная диаграмма (ECharts);
- План/Факт;
- Комбинированная диаграмма;
- Столбчатая диаграмма (ECharts)
- Числовой индикатор.
- Таблица.
- Сводная таблица.
Особенность базовых компонентов в том, что они автоматически обновляются при обновлении приложения, если приложение содержит более свежие версии компонентов, а также всегда могут быть восстановлены из специального хранилища приложения.
Восстановление базового компонента может потребоваться в случае удаления компонента или загрузки вместо него пользовательского компонента, что тоже приводит к удалению базового компонента.
Инструмент восстанавливает базовый компонент до версии компонента, поставляемого с приложением. Таким образом, нет возможности загрузить компонент более ранней версии и сделать его базовым.
Для работы с инструментом восстановления потребуется:
- доступ к командной строке операционной системы хоста приложения;
- программа для работы с СУБД PostgreSQL.
Подготовка
Необходимые приготовления для работы с инструментом восстановления.
В операционной системе хоста приложения откройте контейнер сервиса dashboard.
В командной строке выполните:Блок кода language bash docker ps | grep dashboard
В ответе скопируйте идентификатор контейнера сервиса, например, копируем «63ed8b133e1f» из строки:Блок кода language bash 63ed8b133e1f /platform/backend/service/dashboard:stage-dbe8b637
В командной строке выполните:Блок кода language bash docker exec -it идентификатор_контейнера_сервиса bash
где идентификатор_контейнера_сервиса – скопированный выше идентификатор. В нашем примере – «63ed8b133e1f».
В ответе вы должны увидеть командную строку оболочки контейнера. В нашем примере:Блок кода language bash root@63ed8b133e1f:/#
—
В программе для работы с СУБД PostgreSQL подключитесь к СУБД приложения.
Для подключения используйте указанные параметры postgresql из файла docker-compose.yml для вашего приложения PDTN:Port: postgresql: ports;
Username: postgresql: environment: POSTGRES_USER;
Password: postgresql: environment: POSTGRES_PASSWORD;
- Подключившись к СУБД, откройте редактор запросов для БД platform_dashboard.
Восстановление удаленного базового компонента с заменой пользовательского компонента
При таком восстановлении базовый компонент заменяет указанный пользовательский компонент.
Примечание | ||
---|---|---|
| ||
|
- Найдите отсутствующие базовые компоненты и установленные пользовательские компоненты.
В редакторе запросов выполните:
Блок кода language sql SELECT default_component_key, id, name, is_default_component, default_component_ref, file_name FROM public.component FULL OUTER JOIN public.default_components_ref ON component.default_component_ref=default_components_ref.default_component_key
Если какой-либо из базовых компонентов не установлен в приложении, то для значения ключа такого компонента из колонки default_component_key будут отсутствовать значения (NULL) в остальных колонках, а для установленных пользовательских компонентов, наоборот, будут отсутствовать значения в колонке default_component_key. Например:Scroll Title title-alignment center title Компонент с типом bar-echarts (строка 1) не установлен, а компонент с ID = 26 16 (строка 1316) пользовательский
Соответствие ключей типам базовых компонентов см. в таблице ниже.Ключ Тип компонента polymatica-dashboards-tn/treediagram-echarts
Древовидная диаграмма (ECharts) polymatica-dashboards-tn/speedometer-echarts
Спидометр polymatica-dashboards-tn/scatter-echarts
Точечная диаграмма (ECharts) polymatica-dashboards-tn/radar-echarts
Паутина (ECharts) polymatica-dashboards-tn/progress-bar
Прогресс-бар (ECharts) polymatica-dashboards-tn/pie-basic-echarts
Круговая диаграмма (ECharts) polymatica-dashboards-tn/map
Карта OSM polymatica-dashboards-tn/linear-basic-echarts
Линейная диаграмма (ECharts) polymatica-dashboards-tn/indicator-plan-fact
План/Факт polymatica-dashboards-tn/combo-linear-column-echarts
Комбинированная диаграмма polymatica-dashboards-tn/column-basic-echarts
Столбчатая диаграмма (ECharts) polymatica-dashboards-tn/bar-echarts
Линейчатая диаграмма (ECharts) polymatica-dashboards-tn/numeric-indicator
Числовой индикатор polymatica-dashboards-tn/table
Таблица polymatica-dashboards-tn/pivot-table
Сводная таблица —
- Скопируйте из колонки default_component_key значение ключа отсутствующего базового компонента. В примере копируем значение polymatica-dashboards-tn/bar-echarts.
Восстановите отсутствующий базовый компонент с заменой пользовательского компонента.
В командной строке оболочки контейнера выполните:Блок кода language bash /usr/bin/polymatica-platform-dashboards restore-default-component скопированное_значение --overwrite-component-id=идентификатор_пользовательского_компонента
где скопированное_значение – значение ключа отсутствующего компонента, в нашем примере – «polymatica-dashboards-tn/bar-echarts.»;
идентификатор_пользовательского_компонента – идентификатор компонента, который заменяется на базовый компонент, в нашем примере – 2616.
По выполнении команды последним выведенным сообщением должно быть:Блок кода language text logLevel=info message="Default component скопированное_значение restore complete
где скопированное_значение – значение ключа восстанавливаемого компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»
Проверьте, что базовый компонент установлен с заменой пользовательского компонента.
В редакторе запросов выполните запрос из шага 1. Убедитесь, что значению ключа восстанавливаемого компонента из колонки default_component_key соответствует идентификатор компонента, который заменяли на базовый.Scroll Title title-alignment center title Компонент с идентификатором ID = 26 16 стал базовым —
Подсказка title Обратите внимание! Для восстановленного базового компонента в колонке file_name и на интерфейсе приложения отображается название архива, который был использован для установки пользовательского компонента, но скачивается архив базового компонента.
На этом шаге базовый компонент восстановлен.
Восстановление удаленного базового компонента без замены
Найдите отсутствующие базовые компоненты.
В редакторе запросов выполните:Блок кода language sql SELECT default_component_key, id, name, is_default_component, default_component_ref, file_name FROM public.component RIGHT JOIN public.default_components_ref ON component.default_component_ref=default_components_ref.default_component_key
Если какой-либо из базовых компонентов не установлен в приложении, то для значения ключа такого компонента из колонки default_component_key будут отсутствовать значения (NULL) в остальных колонках. Например:Scroll Title title-alignment center title Компонент с типом bar-echarts (строка 1) не установлен
Соответствие ключей типам базовых компонентов см. в таблице ниже.Ключ Тип компонента polymatica-dashboards-tn/treediagram-echarts
Древовидная диаграмма (ECharts) polymatica-dashboards-tn/speedometer-echarts
Спидометр polymatica-dashboards-tn/scatter-echarts
Точечная диаграмма (ECharts) polymatica-dashboards-tn/radar-echarts
Паутина (ECharts) polymatica-dashboards-tn/progress-bar
Прогресс-бар (ECharts) polymatica-dashboards-tn/pie-basic-echarts
Круговая диаграмма (ECharts) polymatica-dashboards-tn/map
Карта OSM polymatica-dashboards-tn/linear-basic-echarts
Линейная диаграмма (ECharts) polymatica-dashboards-tn/indicator-plan-fact
План/Факт polymatica-dashboards-tn/combo-linear-column-echarts
Комбинированная диаграмма polymatica-dashboards-tn/column-basic-echarts
Столбчатая диаграмма (ECharts) polymatica-dashboards-tn/bar-echarts
Линейчатая диаграмма (ECharts) polymatica-dashboards-tn/numeric-indicator
Числовой индикатор polymatica-dashboards-tn/table
Таблица polymatica-dashboards-tn/pivot-table
Сводная таблица —
- Скопируйте из колонки default_component_key значение ключа отсутствующего базового компонента. В примере копируем значение polymatica-dashboards-tn/bar-echarts.
Восстановите отсутствующий базовый компонент.
В командной строке оболочки контейнера выполните:Блок кода language bash /usr/bin/polymatica-platform-dashboards restore-default-component скопированное_значение
где скопированное_значение – значение ключа отсутствующего компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»
По выполнении команды последним выведенным сообщением должно быть:Блок кода language text logLevel=info message="Default component скопированное_значение restore complete
где скопированное_значение – значение ключа восстанавливаемого компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»
- Проверьте, что базовый компонент установлен.
В редакторе запросов выполните запрос из шага 1. Убедитесь, что для значения ключа восстанавливаемого компонента из колонки default_component_key присутствуют значения (не NULL) в других колонках.
На этом шаге базовый компонент восстановлен.
Восстановление компонента в виджете, когда компонент удален
Если компонент, который использовался в виджете, был удален из приложения, в предпросмотре такого виджета отображается ошибка «Компонент удален». Связь виджета с компонентом теряется при удалении компонента и не восстанавливается автоматически. Поэтому необходимо восстановить компонент вручную.
Scroll Title | ||||
---|---|---|---|---|
| ||||
—
Примечание | ||
---|---|---|
| ||
Поля восстанавливаемого компонента должны соответствовать полям удаленного компонента, иначе для виджета будет возвращена ошибка «Колонка датасета отсутствует». |
Найдите виджеты с удаленным компонентом.
В редакторе запросов выполните:Блок кода language sql SELECT id, name, component_id FROM public.widget WHERE component_id IS null
Если виджеты без компонента есть в приложении, запрос вернет их список. Вам могут потребоваться идентификаторы виджетов из колонки id (см. шаг 3b).Найдите компонент виджета, который требуется использовать для виджета с удаленным компонентом.
В редакторе запросов выполните:Блок кода language sql SELECT id, name FROM public.component
Вам требуется идентификатор компонента из колонки id.Обновите поля виджетов с удаленным компонентом, выбрав один из следующих вариантов.
В этом варианте запрос задаст один компонент для всех виджетов с удаленным компонентом.
В редакторе запросов выполните:Блок кода language sql UPDATE public.widget SET component_id = идентификатор_компонента WHERE component_id IS null
где идентификатор_компонента – идентификатор компонента из шага 2.
В этом варианте запрос задаст компонент для указанного виджета с удаленным компонентом.
Обращайте внимание на ответ к запросу: он может быть «UPDATE 0», например, если указан идентификатор виджета, для которого компонент уже задан.
В редакторе запросов выполните:Блок кода language sql UPDATE public.widget SET component_id = идентификатор_компонента WHERE id = идентификатор_виджета AND component_id IS null
где идентификатор_компонента – идентификатор компонента из шага 2;
идентификатор_виджета – идентификатор_виджета из шага 1.
- Проверьте, что компоненты для виджетов заданы.
В редакторе запросов выполните запрос из шага 1. Убедитесь, что запрос не возвращает списка виджетов.
На этом шаге восстановление компонента виджета завершено. Проверьте успешность восстановления через предпросмотр виджета.
Easy Heading Macro | ||||||||
---|---|---|---|---|---|---|---|---|
|