Журнал учёта замечаний v0.2.0: интеллектуальное слияние баз и защита от дублей
🚀 Глобальное обновление 0.2.0: Интеллектуальное слияние баз и переход на новую архитектуру!
Приветствую, коллеги! Выпущено критически важное обновление программы Журнал учёта замечаний до версии 0.2.0. Это не просто рядовой патч с мелкими правками — мы кардинально переработали фундамент базы данных и написали с нуля супер-умный модуль синхронизации (слияния) локальных баз от разных пользователей.
⚠️ Внимание: Обновление ОБЯЗАТЕЛЬНО для всех! В связи с переходом на новую архитектуру изменилась структура базы данных. Старые и новые базы будут несовместимы при слиянии. При обновлении вам необходимо будет использовать эталонный файл tracker.db (прилагается к релизу), чтобы у всей команды был одинаковый фундамент для дальнейшей работы.
Разберем подробнее, что скрывается под капотом этого масштабного апдейта.
🧬 Переход на архитектуру UUID
Ранее мы столкнулись с классической проблемой распределенных баз данных: «разъехавшимися» автоинкрементами. Если вы и ваш коллега независимо друг от друга создали новые замечания у себя на ноутбуках, обе базы могли присвоить им одинаковый ID = 15. При попытке слияния происходил конфликт, и записи «съедали» друг друга.
Решение: Мы внедрили уникальные идентификаторы UUID для каждой записи. Теперь, где бы ни было создано замечание, оно получает свой уникальный, неповторимый код. Модуль слияния работает безупречно, а конфликты ID остались в прошлом! 🛡
🧠 Пуленепробиваемый модуль синхронизации (Sync)
Мы создали полноценный аналог профессионального Git-слияния, только для базы данных замечаний. Новый алгоритм работает в 3 этапа:
1. Поиск новых записей и Анти-Дубль (difflib)
Программа ищет новые UUID и предлагает добавить их в вашу базу. Но что, если коллега забыл обновиться и случайно завел проблему, которая у вас уже есть? Тут включается встроенный алгоритм Python (difflib). Он сканирует тексты замечаний и, если находит совпадение, подсвечивает строку красным цветом и предупреждает: «Внимание: это новое замечание совпадает на 100% с вашей существующей записью!». Вы просто снимаете галочку при импорте, и ни один дубликат в базу не попадет. 🎯
2. Разрешение конфликтов обновлений
Если UUID совпадают, программа сверяет метки времени (last_edit). Если коллега отредактировал запись или поменял статус позже вас — система аккуратно предложит обновить эти данные в вашей базе. Никаких потерь информации! ⏱
3. Интеллектуальный контроль «Удаленных» записей
Самая коварная проблема оффлайн-баз: как понять, что коллега удалил запись, а не просто еще не скачал ваше новое замечание? Мы внедрили железную логику:
-
Если ваша запись НОВЕЕ, чем дата выгрузки базы коллеги ➡️ Программа понимает, что это просто свежее замечание, которое коллега еще не видел. Оно игнорируется.
-
Если ваша запись СТАРЕЕ, чем дата выгрузки ➡️ Программа понимает, что коллега видел эту запись и целенаправленно её удалил.
В этом случае система предлагает перевести статус такого замечания в «Удалено». При этом мы ничего не стираем безвозвратно! В главной таблице такие строки просто окрашиваются в светло-серый цвет 🌫. Вы визуально видите, что запись аннулирована, но всегда можете найти её через фильтры и проверить, не удалил ли коллега что-то важное.
📥 Скачать обновление
Скачать журнал учёта замечаний версии 0.2.0 можно абсолютно бесплатно на нашем сайте «Логи и Проги».
P.S. Напоминаю: обязательно обновите не только исполняемый файл, но и раздайте команде актуальный файл базы tracker.db для первичной синхронизации UUID.
Приятной работы и стабильных слияний без конфликтов! 🐰💻🚩
- misterleks от