mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-03 11:01:20 +01:00
fix: dont store ap tids in topics:tid
create new zset topicsRemote:tid upgrade script to copy over ap tids
This commit is contained in:
@@ -57,7 +57,7 @@ module.exports = function (Topics) {
|
|||||||
await db.setObject(`topic:${topicData.tid}`, topicData);
|
await db.setObject(`topic:${topicData.tid}`, topicData);
|
||||||
|
|
||||||
const timestampedSortedSetKeys = [
|
const timestampedSortedSetKeys = [
|
||||||
'topics:tid',
|
utils.isNumber(tid) ? 'topics:tid' : 'topicsRemote:tid',
|
||||||
`cid:${topicData.cid}:tids`,
|
`cid:${topicData.cid}:tids`,
|
||||||
`cid:${topicData.cid}:tids:create`,
|
`cid:${topicData.cid}:tids:create`,
|
||||||
`cid:${topicData.cid}:uid:${topicData.uid}:tids`,
|
`cid:${topicData.cid}:uid:${topicData.uid}:tids`,
|
||||||
|
|||||||
28
src/upgrades/4.9.0/topicsRemote_zset.js
Normal file
28
src/upgrades/4.9.0/topicsRemote_zset.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const db = require('../../database');
|
||||||
|
const batch = require('../../batch');
|
||||||
|
const utils = require('../../utils');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
name: 'Move ap tids from topics:tid to topicsRemote:tid',
|
||||||
|
timestamp: Date.UTC(2026, 1, 24),
|
||||||
|
method: async function () {
|
||||||
|
const { progress } = this;
|
||||||
|
progress.total = await db.sortedSetCard('topics:tid');
|
||||||
|
|
||||||
|
await batch.processSortedSet('topics:tid', async (topicData) => {
|
||||||
|
const apTopics = topicData.filter(topic => !utils.isNumber(topic.value));
|
||||||
|
await db.sortedSetRemove('topics:tid', apTopics.map(topic => topic.value));
|
||||||
|
await db.sortedSetAdd(
|
||||||
|
'topicsRemote:tid',
|
||||||
|
apTopics.map(t => t.score),
|
||||||
|
apTopics.map(t => t.value)
|
||||||
|
);
|
||||||
|
progress.incr(topicData.length);
|
||||||
|
}, {
|
||||||
|
batch: 500,
|
||||||
|
withScores: true,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user