closes #1311, set category post counts to 0 before starting upgrade

v1.18.x
barisusakli 12 years ago
parent 7c84680b06
commit 15c16c2502

@ -38,8 +38,8 @@ function userRoutes(app, middleware, controllers) {
app.get('/admin/users/sort-reputation', middleware.admin.buildHeader, controllers.admin.users.sortByReputation); app.get('/admin/users/sort-reputation', middleware.admin.buildHeader, controllers.admin.users.sortByReputation);
app.get('/api/admin/users/sort-reputation', controllers.admin.users.sortByReputation); app.get('/api/admin/users/sort-reputation', controllers.admin.users.sortByReputation);
app.get('/admin/users', middleware.admin.buildHeader, controllers.admin.users.sortByJoinDate); app.get('/admin/users', middleware.admin.buildHeader, controllers.admin.users.search);
app.get('/api/admin/users', controllers.admin.users.sortByJoinDate); app.get('/api/admin/users', controllers.admin.users.search);
} }
function forumRoutes(app, middleware, controllers) { function forumRoutes(app, middleware, controllers) {

@ -810,38 +810,51 @@ Upgrade.upgrade = function(callback) {
if (schemaDate < thisSchemaDate) { if (schemaDate < thisSchemaDate) {
winston.info('[2014/6/17] Upgrading category post counts...'); winston.info('[2014/6/17] Upgrading category post counts...');
db.getSortedSetRange('topics:tid', 0, -1, function(err, tids) { db.getSortedSetRange('categories:cid', 0, -1, function(err, cids) {
function upgradeTopic(tid, callback) {
Topics.getTopicFields(tid, ['cid', 'postcount', 'deleted'], function(err, topicData) {
if (err || !topicData) {
return callback(err);
}
if (parseInt(topicData.deleted, 10) === 1) {
return callback();
}
db.incrObjectFieldBy('category:' + topicData.cid, 'post_count', topicData.postcount, callback);
});
}
if (err) { if (err) {
return next(err); return next(err);
} }
if (!Array.isArray(tids) || !tids.length) { async.each(cids, function(cid, next) {
winston.info('[2014/6/17] Skipping category post upgrade'); db.setObjectField('category:' + cid, 'post_count', 0, next);
return Upgrade.update(thisSchemaDate, next); }, function(err) {
}
async.each(tids, upgradeTopic, function(err) {
if (err) { if (err) {
winston.error('[2014/6/17] Error encountered while upgrading category postcounts');
return next(err); return next(err);
} }
winston.info('[2014/6/17] Category post counts upgraded'); db.getSortedSetRange('topics:tid', 0, -1, function(err, tids) {
Upgrade.update(thisSchemaDate, next); function upgradeTopic(tid, callback) {
Topics.getTopicFields(tid, ['cid', 'postcount', 'deleted'], function(err, topicData) {
if (err || !topicData) {
return callback(err);
}
if (parseInt(topicData.deleted, 10) === 1) {
return callback();
}
db.incrObjectFieldBy('category:' + topicData.cid, 'post_count', topicData.postcount, callback);
});
}
if (err) {
return next(err);
}
if (!Array.isArray(tids) || !tids.length) {
winston.info('[2014/6/17] Skipping category post upgrade');
return Upgrade.update(thisSchemaDate, next);
}
async.each(tids, upgradeTopic, function(err) {
if (err) {
winston.error('[2014/6/17] Error encountered while upgrading category postcounts');
return next(err);
}
winston.info('[2014/6/17] Category post counts upgraded');
Upgrade.update(thisSchemaDate, next);
});
});
}); });
}); });
} else { } else {

Loading…
Cancel
Save