Общие сведения
В разделе рассматривается работа с инструментом восстановления базовых компонентов виджетов (далее – базовый компонент).
В модуле Dashboard предусмотрено 15 типов базовых компонентов:
Особенность базовых компонентов в том, что они автоматически обновляются при обновлении приложения, если приложение содержит более свежие версии компонентов, а также всегда могут быть восстановлены из специального хранилища приложения.
Восстановление базового компонента может потребоваться в случае удаления компонента или загрузки вместо него пользовательского компонента, что тоже приводит к удалению базового компонента.
Инструмент восстанавливает базовый компонент до версии компонента, поставляемого с приложением. Таким образом, нет возможности загрузить компонент более ранней версии и сделать его базовым.
Для работы с инструментом восстановления потребуется:
Необходимые приготовления для работы с инструментом восстановления.
В операционной системе хоста приложения откройте контейнер сервиса dashboard.
В командной строке выполните:
docker ps | grep dashboard |
В ответе скопируйте идентификатор контейнера сервиса, например, копируем «63ed8b133e1f» из строки:
63ed8b133e1f /platform/backend/service/dashboard:stage-dbe8b637 |
В командной строке выполните:
docker exec -it идентификатор_контейнера_сервиса bash |
где идентификатор_контейнера_сервиса – скопированный выше идентификатор. В нашем примере – «63ed8b133e1f».
В ответе вы должны увидеть командную строку оболочки контейнера. В нашем примере:
root@63ed8b133e1f:/# |
—
В программе для работы с СУБД PostgreSQL подключитесь к СУБД приложения.
Для подключения используйте указанные параметры postgresql из файла docker-compose.yml для вашего приложения PDTN:
Port: postgresql: ports;
Username: postgresql: environment: POSTGRES_USER;
Password: postgresql: environment: POSTGRES_PASSWORD;
При таком восстановлении базовый компонент заменяет указанный пользовательский компонент.
|
В редакторе запросов выполните:
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. Например:
Соответствие ключей типам базовых компонентов см. в таблице ниже.
Ключ | Тип компонента |
---|---|
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 | Сводная таблица |
—
Восстановите отсутствующий базовый компонент с заменой пользовательского компонента.
В командной строке оболочки контейнера выполните:
/usr/bin/polymatica-platform-dashboards restore-default-component скопированное_значение --overwrite-component-id=идентификатор_пользовательского_компонента |
где скопированное_значение – значение ключа отсутствующего компонента, в нашем примере – «polymatica-dashboards-tn/bar-echarts.»;
идентификатор_пользовательского_компонента – идентификатор компонента, который заменяется на базовый компонент, в нашем примере – 16.
По выполнении команды последним выведенным сообщением должно быть:
logLevel=info message="Default component скопированное_значение restore complete |
где скопированное_значение – значение ключа восстанавливаемого компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»
Проверьте, что базовый компонент установлен с заменой пользовательского компонента.
В редакторе запросов выполните запрос из шага 1. Убедитесь, что значению ключа восстанавливаемого компонента из колонки default_component_key соответствует идентификатор компонента, который заменяли на базовый.
—
Для восстановленного базового компонента в колонке file_name и на интерфейсе приложения отображается название архива, который был использован для установки пользовательского компонента, но скачивается архив базового компонента. |
На этом шаге базовый компонент восстановлен.
Найдите отсутствующие базовые компоненты.
В редакторе запросов выполните:
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) в остальных колонках. Например:
Соответствие ключей типам базовых компонентов см. в таблице ниже.
Ключ | Тип компонента |
---|---|
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 | Сводная таблица |
—
Восстановите отсутствующий базовый компонент.
В командной строке оболочки контейнера выполните:
/usr/bin/polymatica-platform-dashboards restore-default-component скопированное_значение |
где скопированное_значение – значение ключа отсутствующего компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»
По выполнении команды последним выведенным сообщением должно быть:
logLevel=info message="Default component скопированное_значение restore complete |
где скопированное_значение – значение ключа восстанавливаемого компонента. В нашем примере – «polymatica-dashboards-tn/bar-echarts.»
Если компонент, который использовался в виджете, был удален из приложения, в предпросмотре такого виджета отображается ошибка «Компонент удален». Связь виджета с компонентом теряется при удалении компонента и не восстанавливается автоматически. Поэтому необходимо восстановить компонент вручную.
—
Поля восстанавливаемого компонента должны соответствовать полям удаленного компонента, иначе для виджета будет возвращена ошибка «Колонка датасета отсутствует». |
Найдите виджеты с удаленным компонентом.
В редакторе запросов выполните:
SELECT id, name, component_id FROM public.widget WHERE component_id IS null |
Если виджеты без компонента есть в приложении, запрос вернет их список. Вам могут потребоваться идентификаторы виджетов из колонки id (см. шаг 3b).
Найдите компонент виджета, который требуется использовать для виджета с удаленным компонентом.
В редакторе запросов выполните:
SELECT id, name FROM public.component |
Вам требуется идентификатор компонента из колонки id.
Обновите поля виджетов с удаленным компонентом, выбрав один из следующих вариантов.
В этом варианте запрос задаст один компонент для всех виджетов с удаленным компонентом.
В редакторе запросов выполните:
UPDATE public.widget SET component_id = идентификатор_компонента WHERE component_id IS null |
где идентификатор_компонента – идентификатор компонента из шага 2.
В этом варианте запрос задаст компонент для указанного виджета с удаленным компонентом.
Обращайте внимание на ответ к запросу: он может быть «UPDATE 0», например, если указан идентификатор виджета, для которого компонент уже задан.
В редакторе запросов выполните:
UPDATE public.widget SET component_id = идентификатор_компонента WHERE id = идентификатор_виджета AND component_id IS null |
где идентификатор_компонента – идентификатор компонента из шага 2;
идентификатор_виджета – идентификатор_виджета из шага 1.