diff --git a/scripts/mongodb/migrations/2015-11-10-course-correction.js b/scripts/mongodb/migrations/2015-11-10-course-correction.js new file mode 100644 index 000000000..4b6851033 --- /dev/null +++ b/scripts/mongodb/migrations/2015-11-10-course-correction.js @@ -0,0 +1,34 @@ +var counts = { + hasClassroom: 0, + isOwn: 0, + migrated: 0 +}; + +// script for generating codes +// JSON.stringify(_.unique(_.map(_.range(1000), function() { return _.sample("abcdefghijklmnopqrstuvwxyz0123456789", 8).join('') }))) +var codes = +db.course.instances.find().forEach(function(courseInstance) { + if(courseInstance.classroomID) { + counts.hasClassroom += 1; + return; + } + if(courseInstance.ownerID && courseInstance.members && courseInstance.ownerID.equals(courseInstance.members[0]) && courseInstance.members.length === 1) { + counts.isOwn += 1; + return; + } + + var id = ObjectId(); + + var newClassroom = { + members: courseInstance.members, + ownerID: courseInstance.ownerID, + description: courseInstance.description, + name: courseInstance.name, + code: codes.pop(), + _id: id + }; + print('migrating', JSON.stringify(newClassroom, null, '\t')); + db.classrooms.save(newClassroom); + courseInstance.classroomID = id; + db.course.instances.save(courseInstance); +});