Нужно доработать приложение на С# по синхронизации БД
Есть приложение https://github.com/bubnenkoff/DBSyncNET
Что оно делает.
1. Берет данные с определенными флагами из PostgreSQL
2. Выгружает их в SQLite
3. Берет данные из SQLite, проверяет есть ли в FireBird (проверка по GUID). Выгружает нужные данные в FireBird.
В случае если в FireBird есть не синхронизированные данные, то выгружает их в SQLite.
Все проверка идет по флагу FL:
Не синхронизированные данные -- 10
Данные ожидают синхронизации -- 11
Данные синхронизированы и в синхронизации больше не нуждаются -- 12
Сам к сожалению C# знаю очень плохо и уже начал говнокодить.
Собственно большая часть логики у меня реализована. Никакие доп фишки не нужны. Никакие ORM тоже не нужны. Все запросы должны остаться в таком же виде -- в виде чистого SQL с параметрами (ну типа чтобы бинарные блобы можно было вставить).
Примеры БД на Гитхабе.
Как я понимаю нужен еще один класс и пара методов. Только сам я запутался уже.
Алгоритм работы:
Во всех трех базах одинаковая структура.
Нужно взять данные из PG из таблицы с FL=10
Поменять FL на 11 (типа данные ожидают синхронизации)
Выгрузить их в SQLite
---
Следующий шаг:
Подключаемся к FireBird. Делаем выборку из SQLite по ГУИДам (чтобы понять есть ли там такие данные или нет). Для данных которых в FireBird нет делаем выборку из SQLite и вставляем их в FireBird. Данным в FireBird ставим FL - 12.
--
Потом делаем выборку из FireBird данных с FL=10 и выгружаем их в SQLite, чтобы потом вставить в PG и в нем уже поменять флаг для них на 12