инвентаризация:dev:синхронизация

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
инвентаризация:dev:синхронизация [2023/08/22 05:58]
admin создано
инвентаризация:dev:синхронизация [2023/09/01 03:18] (текущий)
admin [Объекты]
Строка 1: Строка 1:
-{{tag>черновик Инвентаризация}}+{{tag>dev Инвентаризация}}
 ====== Инвентаризация: DEV: Синхронизация ====== ====== Инвентаризация: DEV: Синхронизация ======
 Механизм синхронихации между БД Механизм синхронихации между БД
Строка 10: Строка 10:
   * Модели оборудования   * Модели оборудования
   * ПО   * ПО
 +  * Типы лицензий
 +  * Схемы лицензирования
 +  * Контрагенты (надо убрать из них приватную часть)
  
 ==== Режимы синхронизации ==== ==== Режимы синхронизации ====
Строка 22: Строка 25:
   * обновление существующих   * обновление существующих
   * добавление+обновление   * добавление+обновление
-Вопрос с удалением отсутствующих объектов+ 
  
 ==== Регламент ==== ==== Регламент ====
Строка 34: Строка 38:
   * Учитывая необходимость исправлять ссылки на лету, логично все затолкать в один котроллер, чтобы в процессе синхронизации держать удаленные объекты разных типов в памяти, а не загружать постоянно   * Учитывая необходимость исправлять ссылки на лету, логично все затолкать в один котроллер, чтобы в процессе синхронизации держать удаленные объекты разных типов в памяти, а не загружать постоянно
      
 +{{drawio>инвентаризация:dev:sync.png}}
 ==== Вложения ==== ==== Вложения ====
 Нужно разрешить extend вложений в типах и моделях оборудования Нужно разрешить extend вложений в типах и моделях оборудования
Строка 40: Строка 45:
   * Определив направление сравниваем сканы поименно с учетом размера и даты   * Определив направление сравниваем сканы поименно с учетом размера и даты
   * При наличии различий - обновляем в нужном направлении   * При наличии различий - обновляем в нужном направлении
 +{{drawio>инвентаризация:dev:syncScans.png}}
 ==== Прочее ==== ==== Прочее ====
 Возможно логичнее все сделать в виде внешнего ПО работающего через REST API, чтобы ограничиться работой с REST, а не делать часть задач через локальную БД Возможно логичнее все сделать в виде внешнего ПО работающего через REST API, чтобы ограничиться работой с REST, а не делать часть задач через локальную БД
 С другой стороны полезно встроить в саму инвентори с точки зрения добавления Моделей/Софта/Производителей на лету подтягивая из "облака" при необходимости С другой стороны полезно встроить в саму инвентори с точки зрения добавления Моделей/Софта/Производителей на лету подтягивая из "облака" при необходимости
  
 +Всем синхронизируемым объектам надо добавить поле updated_at и заполнить его
  
 ==== Зависимости ==== ==== Зависимости ====
Строка 50: Строка 56:
 Грузим все объекты с одной стороны для понимания кто куда ссылается Грузим все объекты с одной стороны для понимания кто куда ссылается
 Также согласно зависимостей их надо поселедовательно добавлять во вторую систему Также согласно зависимостей их надо поселедовательно добавлять во вторую систему
-  Производители   Типы оборудования +    Производители   Типы оборудования 
-   |      \    \    / +     |      \    \    / 
-Написание  ПО   Модели оборудования+  Написание  ПО   Модели оборудования
  
  
Строка 58: Строка 64:
 Как обнаруживать переименование объектов, например производителя Как обнаруживать переименование объектов, например производителя
 хз хз
-типы оборудования по коду +типы оборудования по коду, а все остальное походу по имени
-Все остальное походу по имени+
 В случае получения в БД переименованного объекта и перестановки ссылок на него, старый должен оказаться не используемым и может быть удален (если не найден в источнике синхронизации) В случае получения в БД переименованного объекта и перестановки ссылок на него, старый должен оказаться не используемым и может быть удален (если не найден в источнике синхронизации)
 +Вопрос с удалением отсутствующих объектов
 +
 +В процессе перепривязывания ссылок можно обнаруживать ссылки на какие объекты были отвязаны
 +Потом перепровеврить все отвязанные объекты на предмет допустимости удаления, если отвязанный объект осиротел - удаляем
 +
  • инвентаризация/dev/синхронизация.1692683908.txt.gz
  • Последнее изменение: 2023/08/22 05:58
  • admin