Ayer queríamos crear un nuevo usuario de Greenlight por línea de comandos y, como nuestra versión no permitía esta opción, actualizamos. ¿Conclusión? Error en Greenlight:
Greenlight encountered a database migration error.
This may be because you haven’t updated to Greenlight 2.0.
If you are not an administrator, please contact one.
We’ve released a new version of Greenlight, but your database isn’t compatible.
Hoy os explicamos cómo lo solucionamos, junto a algunos comandos útiles usando docker.
Cómo actualizar Greenlight.
Para las últimas versiones (a fecha del artículo) la actualización es bastante sencilla. La documentación dice ejecutar $ docker pull bigbluebutton/greenlight:v2
aunque si quieres más opciones puedes elegir cualquier de las “releases” desde Dockerhub.
Aquí fue donde nos falló, tras la actualización daba el error mencionado arriba. Por más que paráramos Greenlight con $ docker-compose down
para levantarlo luego con $ docker-compose up -d
Obviamente el mensaje no tenía sentido. Veníamos de una versión 2.2 a una 2.4. Pero creo que ponen un mensaje genérico que no indica mucho.
Qué estaba pasando.
Investigando pudimos ver que ejecutando
docker exec greenlight-v2 bundle exec rake db:migrate nos decía que nos faltaba una tabla, role_permissions , en la base de datos (que se encuentra en el directorio root/greenlight/db/production).
Además, ejecutando docker exec greenlight-v2 bundle exec rake db:migrate:status nos decía que quedaban 3 pasos de la migración por completar.
Teníamos 2 opciones, intentar añadir esta tabla manualmente, y luego volver a ejecutar el comando con db:migrate para que continuara con la migración (o con posteriores errores) o recrear la base de datos. Como nosotros no tenemos grabaciones, y básicamente 3 o cuatro usuarios, decidimos optar por la segunda opción.
Para ello:
- renombramos la base de datos para poder tener copia.
- Paramos Greenlight con $ docker-compose down
- Ejecutamos docker exec greenlight-v2 bundle exec rake db:setup que básicamente recrea la base de datos vacía. Te indica en línea de comandos el usuario administrador.
- Entramos, cambiamos los datos (nombre y contraseña) del administrador.
- Añadimos los usuarios que nos faltaba siguiendo la documentación con
$ docker exec greenlight-v2 bundle exec rake user:create["name","email","password","user"]
para usuarios normales y$ docker exec greenlight-v2 bundle exec rake user:create["name","email","password","admin"]
para administradores.
Y resuelto.
Tenemos que recordar que, al ser Greenlight un front-end de Big Blue Button, el servicio de videoconferencias es independiente y sigue activo en todo este proceso (afortunadamente).
Os recomendamos los siguientes productos relacionados con la informática: