Skip to content

Instantly share code, notes, and snippets.

@jonstorer
Last active August 29, 2015 13:57
Show Gist options
  • Save jonstorer/9674721 to your computer and use it in GitHub Desktop.
Save jonstorer/9674721 to your computer and use it in GitHub Desktop.
async = require process.cwd() + '/node_modules/async'
mongoose = require process.cwd() + '/node_modules/mongoose'
User = require process.cwd() + '/model/user'
mongoose = require process.cwd() + '/config/database'
copy_password_to_encrypted_password = (complete) ->
mongoose.set 'debug', false
User.collection.find({ password: { $exists: true }, encrypted_password: { $exists: false} }).toArray (err, users) ->
console.log 'found: ' + users.length
throw err if err
do migrate = (err) ->
if users.length % 100 == 0
console.log users.length
if err?
console.log(err)
#complete(err)
if user = users.shift()
if user.encrypted_password?
console.log 'already migrated, should not be here'
setTimeout(migrate, 300)
else if user.password?
User.findOne { _id: user._id }, (err, foundUser) ->
if err?
console.log('error finding')
console.log(err)
setTimeout(migrate, 300)
else
foundUser.encrypted_password = user.password
foundUser.save migrate
else
console.log 'what, how?'
setTimeout(migrate, 300)
else
complete('done')
module.exports =
run: copy_password_to_encrypted_password
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment