From caaebe01a200839a21bd53dc8e357f690645cc28 Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Wed, 27 Nov 2013 10:53:47 -0700 Subject: [PATCH] re: d3eed22 , migration to fix 0'd dayStarts (@paglias, thanks for the fix!) --- migrations/20131127_restore_dayStart.js | 32 +++++++++++++++++++++++++ package.json | 3 ++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 migrations/20131127_restore_dayStart.js diff --git a/migrations/20131127_restore_dayStart.js b/migrations/20131127_restore_dayStart.js new file mode 100644 index 0000000000..41b3774eed --- /dev/null +++ b/migrations/20131127_restore_dayStart.js @@ -0,0 +1,32 @@ +// node .migrations/20131127_restore_dayStart.js + +var mongo = require('mongoskin'); +var _ = require('lodash'); + +var backupUsers = mongo.db('localhost:27017/habitrpg_old?auto_reconnect').collection('users'); +var liveUsers = mongo.db('localhost:27017/habitrpg_new?auto_reconnect').collection('users'); + +var query = {'preferences.dayStart':{$exists:1,$ne:0}}; +var select = {'preferences.dayStart': 1}; + +backupUsers.count(query, function(err, count){ + if (err) return console.error(err); + backupUsers.findEach(query, select, {batchSize:20}, function(err, before){ + if (err) return console.error(err); + if (!before) { count--; return console.log('!before'); } + liveUsers.findById(before._id, function(err, after){ + if (err) return console.error(err); + if (!after) { count--; return console.log(before._id + ' deleted?'); } + + var dayStart = +before.preferences.dayStart; + if (after.preferences.dayStart == 0 && dayStart != 0){ + dayStart = (_.isNaN(dayStart) || dayStart < 0 || dayStart > 24) ? 0 : dayStart; + } else { + dayStart = after.preferences.dayStart; + } + + liveUsers.update({_id:after._id}, {$inc:{_v:1}, $set:{'preferences.dayStart':dayStart}}); + if (--count <= 0) console.log("DONE!"); + }) + }); +}); \ No newline at end of file diff --git a/package.json b/package.json index 0df468e4e3..7350c05643 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "karma-chai-plugins": "~0.1.0", "mocha": "~1.12.1", "karma-mocha": "~0.1.0", - "csv": "~0.3.6" + "csv": "~0.3.6", + "mongoskin": "~0.6.1" } }