mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-04-14 19:56:23 +00:00
add migration for lowercase version of emails and username
This commit is contained in:
parent
c7f8426bce
commit
fc9d0775ab
1 changed files with 63 additions and 0 deletions
63
migrations/20151021_usernames_emails_lowercase.js
Normal file
63
migrations/20151021_usernames_emails_lowercase.js
Normal file
|
|
@ -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();
|
||||
Loading…
Reference in a new issue