Содержание

,

Инвентаризация: DEV: Синхронизация

Механизм синхронихации между БД

Объекты

Хорошо бы иметь общую БД таких объектов как

Режимы синхронизации

Направление

Создание/Обновление

Регламент

инвентаризация:dev:sync.png

Вложения

Нужно разрешить extend вложений в типах и моделях оборудования
При сравнении объектов дополнительно запрашивать сравнение сканов:

инвентаризация:dev:syncscans.png

Прочее

Возможно логичнее все сделать в виде внешнего ПО работающего через REST API, чтобы ограничиться работой с REST, а не делать часть задач через локальную БД
С другой стороны полезно встроить в саму инвентори с точки зрения добавления Моделей/Софта/Производителей на лету подтягивая из «облака» при необходимости

Всем синхронизируемым объектам надо добавить поле updated_at и заполнить его

Зависимости

Для корректной простановки ссылок:
Грузим все объекты с одной стороны для понимания кто куда ссылается
Также согласно зависимостей их надо поселедовательно добавлять во вторую систему

  Производители   Типы оборудования
   |      \    \    /
Написание  ПО   Модели оборудования

Что использовать в качестве ключа?

Как обнаруживать переименование объектов, например производителя
хз
типы оборудования по коду, а все остальное походу по имени
В случае получения в БД переименованного объекта и перестановки ссылок на него, старый должен оказаться не используемым и может быть удален (если не найден в источнике синхронизации)
Вопрос с удалением отсутствующих объектов

В процессе перепривязывания ссылок можно обнаруживать ссылки на какие объекты были отвязаны
Потом перепровеврить все отвязанные объекты на предмет допустимости удаления, если отвязанный объект осиротел - удаляем