Mariano,
Por lo general, este tipo de rutina no es la más recomendable, pero si sabes cuales son las tablas y tomas los recaudos pertinentes (hacerlo en un servidor de prueba antes de hacerlo en producción, tener un backup actualizado para una posible contingencia, etc.), y ves la real ventaja de hacerlo por la BD, ten en cuenta que hay tablas para los roles en general y otras para las asignaciones de roles a los usuarios en los contextos, son dos cosas totalmente distintas.
Te recomendaría hacer un chequeo previo también en las tablas de:
- los ids de los roles "estándar" (mdl_role)
- los ids de las capabilidades (mdl_capabilities)
Por lo general estos valores son iguales, pero no está de más averiguarlo.
También hay otra sugerencia, importantísima. Los roles poseen capabilidades de acuerdo al contexto, esto hay que depurarlo bien para la "migración", a través de la tabla mdl_role_capabilities.
En fin, piensa bien y asegúrate que estás haciendo una buena validación de lo que haces.
Salu2
Eder