J'ai du procéder à un action similaire il y a quelques temps, voici comment j'ai procédé :
1°) J'ai développez un script (en C) pour récupéré des pools de membres (1000) pour éviter d'avoir des problèmes (j'avais plus de 100 000 enregistrement)
2°) ensuite j'ai transformé mon ancien structure SQL vers la nouvelle structure de FOSUserBundle
3°) J'ai ensuite appliqué les rôles de chaque utilisateur (avec un tableau de correspondance)
4°) J'ai généré un nouveau mot de passe aléatoire (les mots de passe de l'ancienne base était hashé avec md5)
5°) J'ai envoyé un mail à chaque membre (actif) avec leurs nouveaux mot de passe
Je te conseil de faire des tirs à blanc sur une fausse base de donnée car j'ai eu quelques surprise au début ;)