Добавить временную миграцию v11 для очистки старых DM

This commit is contained in:
AidarKC
2026-07-07 20:26:16 +04:00
parent 1b7a2a8f7c
commit faada9dcdb
3 changed files with 71 additions and 3 deletions
@@ -0,0 +1,33 @@
# Убрать временную очистку `signed_messages_v2` в миграции БД v11
## Зачем это нужно
При переходе на новый DM-протокол `SHiNE_DM v1` была добавлена временная миграция БД `v11`, которая при первом старте на старой базе полностью очищает:
- `signed_messages_v2`
- `signed_message_session_delivery`
Это сделано как защитный reset, потому что старые DM-строки и backlog могли быть несовместимы с новым форматом, новой логикой tombstone и новым клиентским E2EE-разбором.
## Что именно потом сделать
- удалить временную миграцию `migrateToV11()` из [SqliteDbController.java](/home/ai/work/SHiNE/SHiNE-server-sha256/SHiNE-server/shine-server-db/src/main/java/shine/db/SqliteDbController.java);
- удалить helper `clearLegacySignedMessagesForDmV11(...)`;
- поднять версию схемы дальше обычным образом уже без destructive-cleanup;
- при необходимости заменить это на нормальную точечную миграцию старых DM-записей или совсем убрать поддержку старой истории.
## Что уже есть в коде
- `LATEST_SCHEMA_VERSION = 11`;
- при миграции в `v11` выполняется полная очистка DM-таблиц;
- в коде прямо оставлен комментарий, что это временная мера.
## Откуда продолжать
Продолжать от коммита, в котором была добавлена миграция `v11` для очистки DM-таблиц после перехода на `SHiNE_DM v1`.
## Какие документы потом обновить
- `Dev_Docs/Personal_Messages/Протокол_DM_v1.md`, если изменится стратегия миграции старой истории;
- `Dev_Docs/Personal_Messages/Формат_DM_v1.md`, если появится отдельное правило совместимости/конвертации;
- при необходимости `Dev_Docs/API/12_Direct_Messages_Push_Calls_API.md`, если затронется поведение backlog/доставки.