diff --git a/src/upgrade.js b/src/upgrade.js index baba3998a2..de2ac7aa80 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -209,32 +209,43 @@ Upgrade.upgrade = function(callback) { } }, function(next) { - thisSchemaDate = new Date(2014, 0, 5, 14, 5).getTime(); + thisSchemaDate = new Date(2014, 0, 5, 14, 6).getTime(); if (schemaDate < thisSchemaDate) { updatesMade = true; // Re-slugify all users - db.getObjectValues('username:uid', function(err, uids) { - var newUserSlug; + db.delete('userslug:uid', function(err) { + if (!err) { + db.getObjectValues('username:uid', function(err, uids) { + var newUserSlug; - async.each(uids, function(uid, next) { - User.getUserField(uid, 'username', function(err, username) { - if(err) { - return next(err); - } - if(username) { - newUserSlug = Utils.slugify(username); - User.setUserField(uid, 'userslug', newUserSlug, next); - } else { - winston.warn('uid '+ uid + ' doesn\'t have a valid username (' + username + '), skipping'); - next(null); - } + async.each(uids, function(uid, next) { + User.getUserField(uid, 'username', function(err, username) { + if(err) { + return next(err); + } + if(username) { + newUserSlug = Utils.slugify(username); + async.parallel([ + function(next) { + User.setUserField(uid, 'userslug', newUserSlug, next); + }, + function(next) { + db.setObjectField('userslug:uid', newUserSlug, uid, next); + } + ], next); + } else { + winston.warn('uid '+ uid + ' doesn\'t have a valid username (' + username + '), skipping'); + next(null); + } + }); + }, function(err) { + winston.info('[2014/1/5] Re-slugify usernames (again)'); + next(err); + }); }); - }, function(err) { - winston.info('[2014/1/5] Re-slugify usernames (again)'); - next(err); - }); - }); + } + }) } else { winston.info('[2014/1/5] Re-slugify usernames (again) skipped'); next();