diff --git a/migrations/20131028_cleanup_deleted_tags.js b/migrations/20131028_cleanup_deleted_tags.js deleted file mode 100644 index d708fc6985..0000000000 --- a/migrations/20131028_cleanup_deleted_tags.js +++ /dev/null @@ -1,17 +0,0 @@ -db.users.find().forEach(function(user){ - var tags = user.tags; - - _.each(user.tasks, function(task){ - _.each(task.tags, function(val, key){ - _.each(tags, function(tag){ - if(key == tag.id) delete task.tags[key]; - }); - }); - }); - - try { - db.users.update({_id:user._id}, user); - } catch(e) { - print(e); - } -}); diff --git a/migrations/20131028_task_subdocs_and_tags_cleanup.js b/migrations/20131028_task_subdocs_tags_invites.js similarity index 70% rename from migrations/20131028_task_subdocs_and_tags_cleanup.js rename to migrations/20131028_task_subdocs_tags_invites.js index 469d45a088..fac6acb838 100644 --- a/migrations/20131028_task_subdocs_and_tags_cleanup.js +++ b/migrations/20131028_task_subdocs_tags_invites.js @@ -1,5 +1,20 @@ +var groups = {}; + db.users.find().forEach(function(user){ + // add_invites_to_groups + if(user.invitations){ + if(user.invitations.party){ + db.groups.update({_id: user.invitations.party.id}, {$addToSet:{invites:user._id}}); + } + + if(user.invitations.guilds){ + _.each(user.invitations.guilds, function(guild){ + db.groups.update({_id: guild.id}, {$addToSet:{invites:user._id}}); + }); + } + } + // Cleanup broken tags _.each(user.tasks, function(task){ _.each(task.tags, function(val, key){ @@ -11,8 +26,8 @@ db.users.find().forEach(function(user){ // Migrate to TaskSchema subdocs!! if (!user.tasks) { - printjson(user.auth); // FIXME before deploying! + print(user._id); } else { _.each(['habit', 'daily', 'todo', 'reward'], function(type) { // we use _.transform instead of a simple _.where in order to maintain sort-order @@ -37,9 +52,10 @@ db.users.find().forEach(function(user){ }); // Remove old groups.*.challenges, they're not compatible with the new system -db.groups.update({},{$pull:{challenges:1}},{multi:true}); +// set member counts db.groups.find().forEach(function(group){ db.groups.update({_id:group._id}, { - $set:{memberCount: _.size(group.members)} + $set:{memberCount: _.size(group.members)}, + $pull:{challenges:1} }) -}); +}); \ No newline at end of file diff --git a/migrations/20131029_add_invites_to_groups.js b/migrations/20131029_add_invites_to_groups.js deleted file mode 100644 index 30575a5c99..0000000000 --- a/migrations/20131029_add_invites_to_groups.js +++ /dev/null @@ -1,25 +0,0 @@ -var groups = {}; - -db.users.find().forEach(function(user){ - if(user.invitations){ - if(user.invitations.party){ - groups[user.invitations.party.id] = groups[user.invitations.party.id] || []; - groups[user.invitations.party.id].push(user._id); - } - - if(user.invitations.guilds){ - _.each(user.invitations.guilds, function(guild){ - groups[guild.id] = groups[guild.id] || []; - groups[guild.id].push(user._id); - }); - } - } -}); - -_.each(groups, function(usersInvited, groupId){ - try { - db.groups.update({_id: groupId}, {$set: {'group.invites': usersInvited} }); - } catch(e) { - print(e); - } -});