From 15c16c2502ae27c8716029cf1c9b3d404dbb01bb Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 17 Jun 2014 15:33:40 -0400 Subject: [PATCH] closes #1311, set category post counts to 0 before starting upgrade --- src/routes/admin.js | 4 +-- src/upgrade.js | 63 +++++++++++++++++++++++++++------------------ 2 files changed, 40 insertions(+), 27 deletions(-) diff --git a/src/routes/admin.js b/src/routes/admin.js index 24bb7e76da..3928298ada 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -38,8 +38,8 @@ function userRoutes(app, middleware, controllers) { 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('/admin/users', middleware.admin.buildHeader, controllers.admin.users.sortByJoinDate); - app.get('/api/admin/users', controllers.admin.users.sortByJoinDate); + app.get('/admin/users', middleware.admin.buildHeader, controllers.admin.users.search); + app.get('/api/admin/users', controllers.admin.users.search); } function forumRoutes(app, middleware, controllers) { diff --git a/src/upgrade.js b/src/upgrade.js index 1ac54d9597..efe19d5011 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -810,38 +810,51 @@ Upgrade.upgrade = function(callback) { if (schemaDate < thisSchemaDate) { winston.info('[2014/6/17] Upgrading category post counts...'); - db.getSortedSetRange('topics:tid', 0, -1, function(err, tids) { - 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); - }); - } - + db.getSortedSetRange('categories:cid', 0, -1, function(err, cids) { 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) { + async.each(cids, function(cid, next) { + db.setObjectField('category:' + cid, 'post_count', 0, next); + }, 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); + db.getSortedSetRange('topics:tid', 0, -1, function(err, tids) { + 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 {