mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 12:05:57 +01:00
upgrade topics:tid to sorted set, topics:recent doesnt have deleted topics
This commit is contained in:
@@ -684,6 +684,12 @@
|
||||
});
|
||||
}
|
||||
|
||||
module.isSortedSetMember = function(key, value, callback) {
|
||||
module.sortedSetScore(key, value, function(err, score) {
|
||||
callback(err, !!score);
|
||||
});
|
||||
}
|
||||
|
||||
module.sortedSetsScore = function(keys, value, callback) {
|
||||
if(value !== null && value !== undefined) {
|
||||
value = value.toString();
|
||||
|
||||
@@ -378,6 +378,12 @@
|
||||
redisClient.zscore(key, value, callback);
|
||||
}
|
||||
|
||||
module.isSortedSetMember = function(key, value, callback) {
|
||||
module.sortedSetScore(key, value, function(err, score) {
|
||||
callback(err, !!score);
|
||||
});
|
||||
}
|
||||
|
||||
module.sortedSetsScore = function(keys, value, callback) {
|
||||
var multi = redisClient.multi();
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ var winston = require('winston'),
|
||||
|
||||
ThreadTools.exists = function(tid, callback) {
|
||||
|
||||
db.isSetMember('topics:tid', tid, function(err, ismember) {
|
||||
db.isSortedSetMember('topics:tid', tid, function(err, ismember) {
|
||||
|
||||
if (err) {
|
||||
callback(false);
|
||||
|
||||
@@ -47,7 +47,7 @@ var async = require('async'),
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
db.setAdd('topics:tid', tid);
|
||||
db.sortedSetAdd('topics:tid', timestamp, tid);
|
||||
db.searchIndex('topic', title, tid);
|
||||
|
||||
user.addTopicIdToUser(uid, tid, timestamp);
|
||||
@@ -906,7 +906,7 @@ var async = require('async'),
|
||||
};
|
||||
|
||||
Topics.getAllTopics = function(start, end, callback) {
|
||||
db.getSortedSetRevRange('topics:recent', start, end, function(err, tids) {
|
||||
db.getSortedSetRevRange('topics:tid', start, end, function(err, tids) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
@@ -918,7 +918,7 @@ var async = require('async'),
|
||||
};
|
||||
|
||||
Topics.markAllRead = function(uid, callback) {
|
||||
db.getSetMembers('topics:tid', function(err, tids) {
|
||||
db.getSortedSetRange('topics:tid', 0, -1, function(err, tids) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
@@ -1189,7 +1189,7 @@ var async = require('async'),
|
||||
}
|
||||
|
||||
Topics.reIndexAll = function(callback) {
|
||||
db.getSetMembers('topics:tid', function(err, tids) {
|
||||
db.getSortedSetRange('topics:tid', 0, -1, function(err, tids) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ var db = require('./database'),
|
||||
|
||||
Upgrade.check = function(callback) {
|
||||
// IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema
|
||||
var latestSchema = new Date(2014, 1, 9, 20, 50).getTime();
|
||||
var latestSchema = new Date(2014, 1, 14, 20, 50).getTime();
|
||||
|
||||
db.get('schemaDate', function(err, value) {
|
||||
if (parseInt(value, 10) >= latestSchema) {
|
||||
@@ -579,7 +579,41 @@ Upgrade.upgrade = function(callback) {
|
||||
winston.info('[2014/2/9] Remove Topic LastFeedUpdate value, as feeds are now on-demand - skipped');
|
||||
next();
|
||||
}
|
||||
}
|
||||
},
|
||||
function(next) {
|
||||
thisSchemaDate = new Date(2014, 1, 14, 20, 50).getTime();
|
||||
|
||||
if (schemaDate < thisSchemaDate) {
|
||||
updatesMade = true;
|
||||
|
||||
db.getSetMembers('topics:tid', function(err, tids) {
|
||||
if(err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
db.delete('topics:tid', function(err) {
|
||||
if(err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
async.each(tids, function(tid, next) {
|
||||
Topics.getTopicField(tid, 'timestamp', function(err, timestamp) {
|
||||
db.sortedSetAdd('topics:tid', timestamp, tid, next);
|
||||
});
|
||||
}, function(err) {
|
||||
if(err) {
|
||||
return next(err);
|
||||
}
|
||||
winston.info('[2014/2/14] Upgraded topics to sorted set');
|
||||
next();
|
||||
})
|
||||
});
|
||||
})
|
||||
} else {
|
||||
winston.info('[2014/2/14] Upgrade topics to sorted set - skipped');
|
||||
next();
|
||||
}
|
||||
},
|
||||
// Add new schema updates here
|
||||
// IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema IN LINE 17!!!
|
||||
], function(err) {
|
||||
|
||||
Reference in New Issue
Block a user