Cualquier nueva versión de Server CE/Server Pro indicará en sus notas de la versión cualquier cambio en la versión de MongoDB admitida.
¿Debo actualizar MongoDB?
Solo deberías plantearte actualizar tu versión de MongoDB si tienes previsto actualizar tu instancia de Server CE/Server Pro. Si ejecutas una versión de MongoDB más reciente que la recomendada para tu versión actual (o de destino), no es necesario hacer ningún cambio. Si experimentas un problema concreto que crees que podría estar relacionado con tu versión actual de MongoDB, no dudes en abrir una incidencia si eres usuario de Server CE, o contacta con el soporte de Overleaf si eres usuario de Server Pro.Comprobar tu versión de MongoDB
Al abrir la shell demongo debería mostrarse inmediatamente la versión actual.
Usuarios del Overleaf Toolkit:
Proceso de actualización
La actualización de la versión de MongoDB durante una actualización de tu instancia de Server CE/Server Pro se realiza de la siguiente manera:- Decide a qué versión de Server CE/Server Pro tienes previsto actualizar.
- Busca la versión de MongoDB recomendada por esa versión concreta de Overleaf Server CE/Server Pro.
- Sigue las instrucciones para actualizar MongoDB a la versión de destino.
- Actualiza la versión de la imagen de Server CE/Server Pro y reinicia la instancia.
Al actualizar Server CE/Pro, recomendamos actualizar a la última versión de la versión principal desplegada antes de actualizar a la última versión de la siguiente versión principal. Si tu despliegue está más de una versión principal por detrás de la última, tendrás que realizar una actualización en varios pasos.Por ejemplo, si ejecutas la 3.5.10, tendrás que actualizar a la 3.5.13 -> realizar la migración del historial completo de proyectos -> 4.2.9 -> 5.5.4.Nunca debes saltarte versiones principales (3.5.10 -> 5.5.4). Si usas el Toolkit y estás más de una versión principal por detrás de la última, no debes usar el script
bin/upgrade, ya que tendrás que realizar una actualización manual en varios pasos.Información sobre versiones compatibles
Si decides pasar a una versión anterior, esta tabla muestra la versión de MongoDB recomendada para versiones anteriores de Server CE/Server Pro, pero nunca debes volver a una versión anterior de MongoDB.| Server CE/Server Pro | Versión de MongoDB | Versión mínima de compatibilidad de funcionalidades | Versión máxima admitida por el driver de Node.js |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| 2.1.x a 2.4.x | 3.6 | - | - |
| >=2.5.0 | 4.0 | - | - |
| >=3.1.0 | 4.2 | - | - |
| >=3.2.0 | 4.4 | - | - |
| >=4.2.0 | 5.0 | - | - |
| >=5.1.0 | 6.0 | - | - |
| >=5.3.1 | 6.0 | 5.0 | 8.0 |
| >=5.5.0 | 6.0 | 6.0 | 8.0 |
| 6.0.0 | 8.0 | 8.0 | 8.0 |
La versión mínima de compatibilidad de funcionalidades indicada arriba se basa en la versión de MongoDB correspondiente recomendada para usarse con la versión de Overleaf mostrada. Si tienes previsto usar una versión superior, MongoDB tendrá su propio requisito mínimo.
Actualizar MongoDB
MongoDB requiere actualizaciones paso a paso. Esto significa que no puedes pasar directamente, por ejemplo, de4.0 a 5.0. Primero tienes que actualizar de 4.2 a 4.4 y, después, a 5.0.
MongoDB usa números pares para sus versiones estables.
Instrucciones de actualización cuando MongoDB se ejecuta fuera de Docker
Estos son los enlaces a las instrucciones de actualización de mongodb.com para actualizar MongoDB.- Notas de la versión de MongoDB: actualizar MongoDB de
4.2a4.4 - Notas de la versión de MongoDB: actualizar MongoDB de
4.4a5.0 - Notas de la versión de MongoDB: actualizar MongoDB de
5.0a6.0 - Notas de la versión de MongoDB: actualizar MongoDB de
6.0a7.0 - Notas de la versión de MongoDB: actualizar MongoDB de
7.0a8.0
Las instrucciones para
5.0 y superiores hacen referencia a una instalación como replica set, en lugar de independiente. Como Server Pro/CE 4.0.1+ usa transacciones, MongoDB debe ejecutarse como replica set.- Establece el indicador de compatibilidad como se describe en las notas de la versión de MongoDB (consulta los ejemplos más abajo).
- A continuación, actualiza la imagen de mongo:
- Usuarios del Toolkit: actualiza
MONGO_VERSION, por ejemploMONGO_VERSION=6.0 - Usuarios de Docker Compose: actualiza la versión de la etiqueta de la imagen
mongo,
por ejemploservices -> mongo -> image: mongo:6.0;
- Usuarios del Toolkit: actualiza
5.0 a 6.0
Empecemos por asegurarnos de que estamos ejecutando MongoDB 6.0:
Usuarios del Overleaf Toolkit:
featureCompatibilityVersion establecido en 5.0. Para ello, abrimos una shell de MongoDB y ejecutamos el comando indicado:
Usuarios del Overleaf Toolkit:
Los usuarios de Docker Compose pueden ejecutar
docker compose exec mongo mongosh para obtener una shell y ejecutar los mismos comandos que los usuarios del Toolkit.bin/stop, estableceremos MONGO_VERSION=6.0 en config/overleaf.rc y reiniciaremos el servicio mongo con bin/up mongo para comprobar que la actualización se ha realizado sin problemas.
Por último, actualizaremos la versión de la imagen de Server CE/Server Pro a nuestra versión de destino y recrearemos todos los servicios con el comando bin/up -d.
Usuarios de Docker Compose:
A continuación, detendremos las instancias de Server CE/Server Pro y de MongoDB con el comando docker compose stop, actualizaremos el archivo docker-compose.yml para usar image: mongo:6.0 y reiniciaremos el servicio mongo con el comando docker compose up mongo para comprobar que la actualización se ha realizado sin problemas.
Por último, actualizaremos la versión de la imagen de Server CE/Server Pro a nuestra versión de destino y recrearemos todos los servicios con el comando docker compose up.
Empieza por asegurarte de que estás ejecutando MongoDB 6.0 con los comandos mongod --version anteriores.
Según las instrucciones de actualización, el único requisito es tener featureCompatibilityVersion establecido en 6.0. Para ello, abrimos una shell de MongoDB y ejecutamos el comando db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }).
Usuarios del Overleaf Toolkit:
bin/stop, estableceremos MONGO_VERSION=7.0 en config/overleaf.rc y reiniciaremos el servicio mongo con bin/up mongo para comprobar que la actualización se ha realizado sin problemas.
Por último, actualizaremos la versión de la imagen de Server CE/Server Pro a nuestra versión de destino y recrearemos todos los servicios con el comando bin/up -d.
Empieza por asegurarte de que estás ejecutando MongoDB 7.0 con los comandos mongod --version anteriores.
Según las instrucciones de actualización, el único requisito es tener featureCompatibilityVersion establecido en 7.0. Para ello, abrimos una shell de MongoDB y ejecutamos el comando db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Ten en cuenta que ahora se requiere el parámetro adicional confirm: true.
bin/stop, estableceremos MONGO_VERSION=8.0 en config/overleaf.rc y reiniciaremos el servicio mongo con bin/up mongo para comprobar que la actualización se ha realizado sin problemas.
Por último, actualizaremos la versión de la imagen de Server CE/Server Pro a nuestra versión de destino y recrearemos todos los servicios con el comando bin/up -d.
Comandos equivalentes para usuarios de docker compose
Para los usuarios de docker compose, los comandos equivalentes son:docker compose exec mongo mongod --versionpara mostrar la versión de mongodocker compose exec mongo mongoshpara iniciar una shell de mongo para comandos de administración- el comando
docker compose stoppara detener el servidor - Edita el archivo
docker-compose.ymlpara usarimage: mongo:6.0y así actualizar la versión de mongo docker compose up mongopara reiniciar el servicio mongo y comprobar que la actualización se ha realizado sin problemas- Edita el archivo
docker-compose.ymlpara usarimage: sharelatex:VERSIONy así actualizar la versión de la imagen docker compose uppara recrear todos los servicios.
Crear un rol personalizado
En la versión5.5.1 introdujimos una comprobación al inicio para verificar la versión de compatibilidad de funcionalidades de MongoDB. Si tu base de datos MongoDB usa autenticación (por ejemplo, autenticación básica), es posible que el contenedor sharelatex no se inicie y muestre un error de permisos “not authorized on admin to execute command”.
Para resolverlo, puedes crear un nuevo rol en MongoDB y asignarlo a la cuenta de usuario utilizada para acceder a la base de datos siguiendo las instrucciones de abajo, o establecer ALLOW_MONGO_ADMIN_CHECK_FAILURES=true para permitir que la comprobación falle sin impedir que se inicie el despliegue.
Este nuevo rol solo concede permiso para leer los parámetros del servidor MongoDB a nivel de clúster y podría reutilizarse con fines de monitorización.

