Фикс бага с уникальными индексами сообщений

This commit is contained in:
RoyceDa
2026-02-16 19:28:36 +02:00
parent d02cb63ffe
commit 432b270b34
4 changed files with 17 additions and 7 deletions

View File

@@ -19,10 +19,15 @@ export function DatabaseProvider(props: DatabaseProviderProps) {
setInitialized(true);
//await runQuery("DROP TABLE IF EXISTS accounts_sync_times");
/**
* Добавляем уникальный индекс на столбец message_id в таблица
* messages чтобы избежать дубликации сообщений
* Удаляем старый индекс только по message_id
*/
await runQuery("CREATE UNIQUE INDEX IF NOT EXISTS idx_messages_message_id ON messages(message_id)");
await runQuery("DROP INDEX IF EXISTS idx_messages_message_id");
/**
* Добавляем уникальный индекс на столбцы message_id и public_key
* в таблице messages чтобы избежать дубликации сообщений
*/
await runQuery("CREATE UNIQUE INDEX IF NOT EXISTS idx_messages_message_id_public_key ON messages(message_id, account)");
})();
}, []);

View File

@@ -42,6 +42,11 @@ export const TABLES = [
attachments TEXT NOT NULL DEFAULT '[]',
UNIQUE (id)
)`,
/**
* Создаем индекс на столбцы message_id и public_key чтобы избежать дубликации сообщений при синхронизации
*/
`CREATE UNIQUE INDEX IF NOT EXISTS idx_messages_message_id_public_key ON messages(message_id, account)`,
`CREATE TABLE IF NOT EXISTS cached_users (
public_key TEXT PRIMARY KEY,