fix: run the cleaning opengroup transaction on startup

pull/2297/head
Audric Ackermann 3 years ago
parent df5891f662
commit 02ed40455f
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -3408,10 +3408,12 @@ function cleanUpMessagesJson() {
function cleanUpOldOpengroups() { function cleanUpOldOpengroups() {
const ourNumber = getItemById('number_id'); const ourNumber = getItemById('number_id');
if (!ourNumber || !ourNumber.value) { if (!ourNumber || !ourNumber.value) {
console.info('cleanUpOldOpengroups: ourNumber is not set');
return; return;
} }
const v2Convos = getAllOpenGroupV2Conversations(); const v2Convos = getAllOpenGroupV2Conversations();
if (!v2Convos || !v2Convos.length) { if (!v2Convos || !v2Convos.length) {
console.info('cleanUpOldOpengroups: v2Convos is empty');
return; return;
} }
// For each opengroups, if it has more than 1000 messages, we remove all the messages older than 2 months. // For each opengroups, if it has more than 1000 messages, we remove all the messages older than 2 months.
@ -3423,8 +3425,10 @@ function cleanUpOldOpengroups() {
// first remove very old messages for each opengroups // first remove very old messages for each opengroups
assertGlobalInstance().transaction(() => { const db = assertGlobalInstance();
dropFtsAndTriggers(assertGlobalInstance());
db.transaction(() => {
dropFtsAndTriggers(db);
v2Convos.forEach(convo => { v2Convos.forEach(convo => {
const convoId = convo.id; const convoId = convo.id;
const messagesInConvoBefore = getMessagesCountByConversation(convoId); const messagesInConvoBefore = getMessagesCountByConversation(convoId);
@ -3488,11 +3492,9 @@ function cleanUpOldOpengroups() {
const chunks = chunk(allInactiveAndWithoutMessagesConvo, 500); const chunks = chunk(allInactiveAndWithoutMessagesConvo, 500);
chunks.forEach(ch => { chunks.forEach(ch => {
assertGlobalInstance() db.prepare(
.prepare(
`DELETE FROM ${CONVERSATIONS_TABLE} WHERE id IN (${ch.map(() => '?').join(',')});` `DELETE FROM ${CONVERSATIONS_TABLE} WHERE id IN (${ch.map(() => '?').join(',')});`
) ).run(ch);
.run(ch);
}); });
console.info( console.info(
@ -3504,8 +3506,8 @@ function cleanUpOldOpengroups() {
cleanUpMessagesJson(); cleanUpMessagesJson();
rebuildFtsTable(assertGlobalInstance()); rebuildFtsTable(db);
}); })();
} }
// tslint:disable: binary-expression-operand-order insecure-random // tslint:disable: binary-expression-operand-order insecure-random

@ -217,7 +217,12 @@ export function someDeletionsFailed() {
} }
export function pushDeleted(messageCount: number) { export function pushDeleted(messageCount: number) {
pushToastSuccess('deleted', window.i18n('deleted', [messageCount.toString()]), undefined, 'check'); pushToastSuccess(
'deleted',
window.i18n('deleted', [messageCount.toString()]),
undefined,
'check'
);
} }
export function pushCannotRemoveCreatorFromGroup() { export function pushCannotRemoveCreatorFromGroup() {

Loading…
Cancel
Save