mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: some more upgrade script fixes
reduce parallel calls for psql
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable no-await-in-loop */
|
||||
'use strict';
|
||||
|
||||
|
||||
@@ -13,7 +14,7 @@ module.exports = {
|
||||
progress.total = await db.sortedSetCard(`chat:rooms`);
|
||||
await batch.processSortedSet(`chat:rooms`, async (roomIds) => {
|
||||
progress.incr(roomIds.length);
|
||||
await Promise.all(roomIds.map(async (roomId) => {
|
||||
for (const roomId of roomIds) {
|
||||
await batch.processSortedSet(`chat:room:${roomId}:mids`, async (mids) => {
|
||||
let messageData = await db.getObjects(mids.map(mid => `message:${mid}`));
|
||||
messageData.forEach((m, idx) => {
|
||||
@@ -36,7 +37,7 @@ module.exports = {
|
||||
}, {
|
||||
batch: 500,
|
||||
});
|
||||
}));
|
||||
}
|
||||
}, {
|
||||
batch: 500,
|
||||
});
|
||||
|
||||
@@ -26,7 +26,7 @@ module.exports = {
|
||||
});
|
||||
await db.sortedSetAddBulk(bulkAdd);
|
||||
}, {
|
||||
batch: 500,
|
||||
batch: 100,
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
'use strict';
|
||||
/* eslint-disable no-await-in-loop */
|
||||
|
||||
'use strict';
|
||||
|
||||
const db = require('../../database');
|
||||
const batch = require('../../batch');
|
||||
|
||||
|
||||
module.exports = {
|
||||
name: 'Update chat messages to add roomId field',
|
||||
timestamp: Date.UTC(2023, 6, 2),
|
||||
@@ -31,17 +31,12 @@ module.exports = {
|
||||
|
||||
await batch.processArray(allRoomIds, async (roomIds) => {
|
||||
const arrayOfRoomData = await db.getObjects(roomIds.map(roomId => `chat:room:${roomId}`));
|
||||
|
||||
await Promise.all(roomIds.map(async (roomId, index) => {
|
||||
const roomData = arrayOfRoomData[index];
|
||||
if (!roomData) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const roomData of arrayOfRoomData) {
|
||||
if (roomData) {
|
||||
const midsSeen = Object.create(null);
|
||||
const { roomId } = roomData;
|
||||
await batch.processSortedSet(`chat:room:${roomId}:uids`, async (uids) => {
|
||||
for (const uid of uids) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await batch.processSortedSet(`uid:${uid}:chat:room:${roomId}:mids`, async (mids) => {
|
||||
const uniqMids = mids.filter(mid => !midsSeen.hasOwnProperty(mid));
|
||||
if (!uniqMids.length) {
|
||||
@@ -79,7 +74,8 @@ module.exports = {
|
||||
}, {
|
||||
batch: 500,
|
||||
});
|
||||
}));
|
||||
}
|
||||
}
|
||||
}, {
|
||||
batch: 500,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user