var RDB = require('./redis.js'), async = require('async'), winston = require('winston'), notifications = require('./notifications') Upgrade = {}; Upgrade.upgrade = function() { winston.info('Beginning Redis database schema update'); async.series([ function(next) { RDB.hget('notifications:1', 'score', function(err, score) { if (score) { winston.info('[2013/10/03] Updating Notifications'); RDB.keys('uid:*:notifications:*', function(err, keys) { async.each(keys, function(key, next) { RDB.zrange(key, 0, -1, function(err, nids) { async.each(nids, function(nid, next) { notifications.get(nid, function(notif_data) { RDB.zadd(key, notif_data.datetime, nid, next); }); }, next); }); }, next); }); } else { winston.info('[2013/10/03] Updates to Notifications skipped.'); } }); } // Add new schema updates here ], function(err) { if (!err) { winston.info('Redis schema update complete!'); process.exit(); } else { winston.error('Errors were encountered while updating the NodeBB schema: ' + err.message); } }); }; module.exports = Upgrade;