Skip to content

Commit

Permalink
add migration for lowercase version of emails and username
Browse files Browse the repository at this point in the history
  • Loading branch information
paglias committed Oct 21, 2015
1 parent c7f8426 commit fc9d077
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions migrations/20151021_usernames_emails_lowercase.js
@@ -0,0 +1,63 @@
/*
* Migrate email to lowerCase version and add auth.local.lowerCaseUsername email
*/

var mongo = require('mongoskin');
var async = require('async');

var dbserver = 'url';
var dbname = 'dbname';
var countUsers = 0;

var db = mongo.db(dbserver + '/' + dbname + '?auto_reconnect');
var dbUsers = db.collection('users');

console.log('Begins work on db');

function findUsers(gt){
var query = {};
if(gt) query._id = {$gt: gt};

console.log(query)

dbUsers.find(query, {
fields: {_id: 1, auth: 1},
limit: 10000,
sort: {
_id: 1
}
}).toArray(function(err, users){
if(err) throw err;

var lastUser = null;
if(users.length === 10000){
lastUser = users[users.length - 1];
}

async.eachLimit(users, 20, function(user, cb){
countUsers++;
console.log('User: ', countUsers, user._id);

var update = {
$set: {};
};

if(user.auth && user.auth.local) {
if(user.auth.local.username) update['$set']['auth.local.lowerCaseUsername'] = user.auth.local.username.toLowerCase();
if(user.auth.local.email) update['$set']['auth.local.email'] = user.auth.local.email.toLowerCase();
}

dbUsers.update({
_id: user._id
}, update, cb);
}, function(err){
if(err) throw err;

if(lastUser && lastUser._id){
findUsers(lastUser._id);
}
});
});
};

findUsers();

0 comments on commit fc9d077

Please sign in to comment.