Cada nova versão do Server CE/Server Pro indicará qualquer alteração na versão suportada do MongoDB nas suas notas de versão.
Devo atualizar o MongoDB?
Você só deve considerar atualizar a sua versão do MongoDB se estiver planejando atualizar a sua instância do Server CE/Server Pro. Se estiver executando uma versão do MongoDB mais recente do que a recomendada para a sua versão atual (ou de destino), não é necessário fazer nenhuma alteração. Se você tiver um problema específico que acredite estar relacionado com a sua versão atual do MongoDB, fique à vontade para abrir uma issue se for usuário do Server CE, ou contatar o suporte do Overleaf se for usuário do Server Pro.Verificar a sua versão do MongoDB
Abrir o shellmongo deverá exibir imediatamente a versão atual.
Usuários do Overleaf Toolkit:
Processo de atualização
A atualização da versão do MongoDB durante uma atualização da sua instância do Server CE/Server Pro é feita da seguinte forma:- Decida para qual versão do Server CE/Server Pro pretende atualizar.
- Encontre a versão do MongoDB recomendada por essa versão específica do Overleaf Server CE/Server Pro.
- Siga as instruções para atualizar o MongoDB para a versão de destino.
- Atualize a versão da imagem do Server CE/Server Pro e reinicie a instância.
Ao atualizar o Server CE/Pro, recomendamos atualizar para a versão mais recente da versão principal implantada antes de atualizar para a versão mais recente da versão principal seguinte. Se a sua implantação estiver mais de uma versão principal atrás da mais recente, será necessário realizar uma atualização em várias etapas.Por exemplo, se estiver executando a 3.5.10, precisará atualizar para a 3.5.13 -> realizar a migração para o Full Project History -> 4.2.9 -> 5.5.4.Você nunca deve pular versões principais (3.5.10 -> 5.5.4). Se estiver usando o Toolkit e estiver mais de uma versão principal atrás da mais recente, não deve usar o script
bin/upgrade, pois precisará realizar uma atualização manual em várias etapas.Informações de suporte de versões
Caso decida usar uma versão anterior, esta tabela mostra a versão recomendada do MongoDB para versões anteriores do Server CE/Server Pro, mas você nunca deve fazer downgrade da sua versão do MongoDB.| Server CE/Server Pro | Versão do MongoDB | Versão mínima de compatibilidade de recursos | Versão máxima suportada pelo driver 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 |
A versão mínima de compatibilidade de recursos acima baseia-se na versão do MongoDB correspondente recomendada para uso com a versão do Overleaf indicada. Se pretender usar uma versão superior, o MongoDB terá o seu próprio requisito mínimo.
Atualizar o MongoDB
O MongoDB exige atualizações passo a passo. Isso significa que não é possível passar diretamente, digamos, da4.0 para a 5.0. É necessário primeiro atualizar da 4.2 para a 4.4 e depois para a 5.0.
O MongoDB usa números pares para as suas versões estáveis.
Instruções de atualização ao executar o MongoDB fora do Docker
Aqui estão os links para as instruções de atualização do mongodb.com ao atualizar o MongoDB.- Notas de versão do MongoDB - atualizar o MongoDB da
4.2para a4.4 - Notas de versão do MongoDB - atualizar o MongoDB da
4.4para a5.0 - Notas de versão do MongoDB - atualizar o MongoDB da
5.0para a6.0 - Notas de versão do MongoDB - atualizar o MongoDB da
6.0para a7.0 - Notas de versão do MongoDB - atualizar o MongoDB da
7.0para a8.0
As instruções para a
5.0 e superiores referem-se a uma instalação em replica set, em vez de standalone. Como o Server Pro/CE 4.0.1+ usa transações, o MongoDB precisa ser executado como replica set.- Defina o flag de compatibilidade conforme descrito nas notas de versão do MongoDB (veja os exemplos abaixo).
- Em seguida, atualize a imagem do mongo:
- Usuários do Toolkit: atualize
MONGO_VERSION, por exemploMONGO_VERSION=6.0 - Usuários do Docker Compose: atualize a versão da tag da imagem
mongo,
por exemploservices -> mongo -> image: mongo:6.0;
- Usuários do Toolkit: atualize
5.0 para a 6.0
Vamos começar por garantir que estamos executando o MongoDB 6.0:
Usuários do Overleaf Toolkit:
featureCompatibilityVersion definido como 5.0. Fazemos isso abrindo um shell do MongoDB e executando o comando indicado:
Usuários do Overleaf Toolkit:
Os usuários do Docker Compose podem executar
docker compose exec mongo mongosh para obter um shell e executar os mesmos comandos que os usuários do Toolkit.bin/stop, definimos MONGO_VERSION=6.0 em config/overleaf.rc e reiniciamos o serviço mongo usando bin/up mongo) para verificar se a atualização correu bem.
Por fim, atualizamos a versão da imagem do Server CE/Server Pro para a nossa versão de destino e recriamos todos os serviços usando o comando bin/up -d.
Usuários do Docker Compose:
Em seguida, paramos as instâncias do Server CE/Server Pro e do MongoDB usando o comando docker compose stop, atualizamos o arquivo docker-compose.yml para usar image: mongo:6.0 e reiniciamos o serviço mongo usando o comando docker compose up mongo para verificar se a atualização correu bem.
Por fim, atualizamos a versão da imagem do Server CE/Server Pro para a nossa versão de destino e recriamos todos os serviços usando o comando docker compose up.
Comece por garantir que está executando o MongoDB 6.0 usando os comandos mongod --version acima.
De acordo com as instruções de atualização, o único requisito é ter featureCompatibilityVersion definido como 6.0. Fazemos isso abrindo um shell do MongoDB e executando o comando db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
Usuários do Overleaf Toolkit:
bin/stop, definimos MONGO_VERSION=7.0 em config/overleaf.rc e reiniciamos o serviço mongo usando bin/up mongo) para verificar se a atualização correu bem.
Por fim, atualizamos a versão da imagem do Server CE/Server Pro para a nossa versão de destino e recriamos todos os serviços usando o comando bin/up -d.
Comece por garantir que está executando o MongoDB 7.0 usando os comandos mongod --version acima.
De acordo com as instruções de atualização, o único requisito é ter featureCompatibilityVersion definido como 7.0. Fazemos isso abrindo um shell do MongoDB e executando o comando db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Observe que agora é necessário um parâmetro adicional confirm: true.
bin/stop, definimos MONGO_VERSION=8.0 em config/overleaf.rc e reiniciamos o serviço mongo usando bin/up mongo) para verificar se a atualização correu bem.
Por fim, atualizamos a versão da imagem do Server CE/Server Pro para a nossa versão de destino e recriamos todos os serviços usando o comando bin/up -d.
Comandos equivalentes para usuários do Docker Compose
Para usuários do Docker Compose, os comandos equivalentes são:docker compose exec mongo mongod --versionpara exibir a versão do mongodocker compose exec mongo mongoshpara iniciar um shell do mongo para comandos de administração- o comando
docker compose stoppara parar o servidor - Editar o arquivo
docker-compose.ymlpara usarimage: mongo:6.0e atualizar a versão do mongo docker compose up mongopara reiniciar o serviço mongo e verificar se a atualização correu bem- Editar o arquivo
docker-compose.ymlpara usarimage: sharelatex:VERSIONe atualizar a versão da imagem docker compose uppara recriar todos os serviços.
Criar uma função personalizada
Na versão5.5.1, introduzimos uma verificação na inicialização para confirmar a versão de compatibilidade de recursos do MongoDB. Se o seu banco de dados MongoDB usar autenticação (por exemplo, autenticação básica), o contêiner sharelatex poderá não iniciar, exibindo um erro de permissão “not authorized on admin to execute command”.
Para resolver isso, você pode criar uma nova função (role) no MongoDB e atribuí-la à conta de usuário usada para acessar o banco de dados seguindo as instruções abaixo, ou definir ALLOW_MONGO_ADMIN_CHECK_FAILURES=true para permitir que a verificação falhe sem impedir o início da implantação.
Esta nova função concede apenas permissão para ler parâmetros do servidor MongoDB em todo o cluster e pode ser reutilizada para fins de monitoramento,

