Ogni nuova release di Server CE/Server Pro indicherà nelle sue note di rilascio qualsiasi modifica alla versione di MongoDB supportata.
Devo aggiornare MongoDB?
Dovresti prendere in considerazione l’aggiornamento della versione di MongoDB solo se prevedi di aggiornare la tua istanza di Server CE/Server Pro. Se stai eseguendo una versione di MongoDB più recente di quella consigliata per la tua versione attuale (o di destinazione), non è necessario apportare alcuna modifica. Se riscontri un problema specifico che ritieni possa essere legato alla tua versione attuale di MongoDB, sentiti libero di aprire una issue se sei un utente Server CE, oppure contatta il supporto di Overleaf se sei un utente Server Pro.Verificare la versione di MongoDB
L’apertura della shellmongo dovrebbe mostrare immediatamente la versione attuale.
Utenti dell’Overleaf Toolkit:
Processo di aggiornamento
L’aggiornamento della versione di MongoDB durante un upgrade della tua istanza di Server CE/Server Pro si svolge come segue:- Decidi la versione di Server CE/Server Pro a cui intendi aggiornare.
- Trova la versione di MongoDB consigliata per quella specifica release di Overleaf Server CE/Server Pro.
- Segui le istruzioni per aggiornare MongoDB alla versione di destinazione.
- Aggiorna la versione dell’immagine di Server CE/Server Pro e riavvia l’istanza.
Quando esegui un upgrade di Server CE/Pro, ti consigliamo di aggiornare all’ultima release della versione major installata prima di passare all’ultima release della versione major successiva. Se la tua installazione è indietro di più di una versione major rispetto all’ultima, dovrai eseguire un upgrade in più passaggi.Ad esempio, se stai eseguendo la 3.5.10, dovrai aggiornare alla 3.5.13 -> eseguire la migrazione della Full Project History -> 4.2.9 -> 5.5.4.Non dovresti mai saltare versioni major (3.5.10 -> 5.5.4). Se utilizzi il Toolkit e sei indietro di più di una versione major rispetto all’ultima, non devi usare lo script
bin/upgrade, poiché dovrai eseguire manualmente un upgrade in più passaggi.Informazioni sul supporto delle versioni
Nel caso in cui tu decida di passare a una versione precedente, questa tabella mostra la versione di MongoDB consigliata per le release precedenti di Server CE/Server Pro, ma non dovresti mai effettuare il downgrade della versione di MongoDB.| Server CE/Server Pro | Versione di MongoDB | Feature Compatibility Version minima | Versione massima supportata dal driver Node.js |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| da 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 feature compatibility version minima indicata sopra si basa sulla corrispondente versione di MongoDB consigliata per l’uso con la versione di Overleaf mostrata. Se prevedi di utilizzare una versione superiore, MongoDB avrà i propri requisiti minimi.
Aggiornare MongoDB
MongoDB richiede aggiornamenti graduali. Ciò significa che non puoi passare direttamente, ad esempio, dalla4.0 alla 5.0. Devi prima aggiornare dalla 4.2 alla 4.4, e poi alla 5.0.
MongoDB utilizza numeri pari per le sue versioni stabili.
Istruzioni di aggiornamento quando MongoDB è eseguito al di fuori di Docker
Ecco i link alle istruzioni di aggiornamento di mongodb.com per l’upgrade di MongoDB.- Note di rilascio di MongoDB - aggiornamento di MongoDB dalla
4.2alla4.4 - Note di rilascio di MongoDB - aggiornamento di MongoDB dalla
4.4alla5.0 - Note di rilascio di MongoDB - aggiornamento di MongoDB dalla
5.0alla6.0 - Note di rilascio di MongoDB - aggiornamento di MongoDB dalla
6.0alla7.0 - Note di rilascio di MongoDB - aggiornamento di MongoDB dalla
7.0alla8.0
Le istruzioni per la
5.0 e successive si riferiscono a un’installazione replica set anziché standalone. Poiché Server Pro/CE 4.0.1+ utilizza le transazioni, MongoDB deve essere eseguito come replica set.- Imposta il flag di compatibilità come descritto nelle note di rilascio di MongoDB (vedi gli esempi seguenti).
- Quindi aggiorna l’immagine di mongo:
- Utenti del Toolkit Aggiorna
MONGO_VERSION, ad es.MONGO_VERSION=6.0 - Utenti di Docker Compose Aggiorna la versione del tag dell’immagine
mongo,
ad es.services -> mongo -> image: mongo:6.0;
- Utenti del Toolkit Aggiorna
5.0 alla 6.0
Iniziamo assicurandoci di eseguire MongoDB 6.0:
Utenti dell’Overleaf Toolkit:
featureCompatibilityVersion impostato su 5.0. Lo facciamo aprendo una shell MongoDB ed eseguendo il comando indicato:
Utenti dell’Overleaf Toolkit:
Gli utenti di Docker Compose possono eseguire
docker compose exec mongo mongosh per ottenere una shell ed eseguire gli stessi comandi degli utenti del Toolkit.bin/stop, impostiamo MONGO_VERSION=6.0 in config/overleaf.rc e riavviamo il servizio mongo con bin/up mongo) per verificare che l’aggiornamento sia andato a buon fine.
Infine, aggiorniamo la versione dell’immagine di Server CE/Server Pro alla versione di destinazione e ricreiamo tutti i servizi con il comando bin/up -d.
Utenti di Docker Compose:
Arrestiamo quindi le istanze di Server CE/Server Pro e MongoDB con il comando docker compose stop, aggiorniamo il file docker-compose.yml per usare image: mongo:6.0 e riavviamo il servizio mongo con il comando docker compose up mongo per verificare che l’aggiornamento sia andato a buon fine.
Infine, aggiorniamo la versione dell’immagine di Server CE/Server Pro alla versione di destinazione e ricreiamo tutti i servizi con il comando docker compose up.
Inizia assicurandoti di eseguire MongoDB 6.0 usando i comandi mongod --version riportati sopra.
Secondo le istruzioni di aggiornamento, l’unico requisito è avere featureCompatibilityVersion impostato su 6.0. Lo facciamo aprendo una shell MongoDB ed eseguendo il comando db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
Utenti dell’Overleaf Toolkit:
bin/stop, impostiamo MONGO_VERSION=7.0 in config/overleaf.rc e riavviamo il servizio mongo con bin/up mongo) per verificare che l’aggiornamento sia andato a buon fine.
Infine, aggiorniamo la versione dell’immagine di Server CE/Server Pro alla versione di destinazione e ricreiamo tutti i servizi con il comando bin/up -d.
Inizia assicurandoti di eseguire MongoDB 7.0 usando i comandi mongod --version riportati sopra.
Secondo le istruzioni di aggiornamento, l’unico requisito è avere featureCompatibilityVersion impostato su 7.0. Lo facciamo aprendo una shell MongoDB ed eseguendo il comando db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Tieni presente che ora è richiesto il parametro aggiuntivo confirm: true.
bin/stop, impostiamo MONGO_VERSION=8.0 in config/overleaf.rc e riavviamo il servizio mongo con bin/up mongo) per verificare che l’aggiornamento sia andato a buon fine.
Infine, aggiorniamo la versione dell’immagine di Server CE/Server Pro alla versione di destinazione e ricreiamo tutti i servizi con il comando bin/up -d.
Comandi equivalenti per gli utenti di docker compose
Per gli utenti di docker compose, i comandi equivalenti sono:docker compose exec mongo mongod --versionper visualizzare la versione di mongodocker compose exec mongo mongoshper avviare una shell mongo per i comandi di amministrazione- il comando
docker compose stopper arrestare il server - Modifica il file
docker-compose.ymlper usareimage: mongo:6.0e aggiornare la versione di mongo docker compose up mongoper riavviare il servizio mongo e verificare che l’aggiornamento sia andato a buon fine- Modifica il file
docker-compose.ymlper usareimage: sharelatex:VERSIONe aggiornare la versione dell’immagine docker compose upper ricreare tutti i servizi.
Creare un ruolo personalizzato
Nella versione5.5.1 abbiamo introdotto un controllo all’avvio per verificare la feature compatibility version di MongoDB. Se il tuo database MongoDB utilizza l’autenticazione (ad es. l’autenticazione di base), il container sharelatex potrebbe non avviarsi, mostrando un errore di permessi “not authorized on admin to execute command”.
Per risolvere il problema, puoi creare un nuovo ruolo in MongoDB e assegnarlo all’account utente utilizzato per accedere al database seguendo le istruzioni riportate di seguito, oppure impostare ALLOW_MONGO_ADMIN_CHECK_FAILURES=true per consentire che il controllo fallisca senza impedire l’avvio dell’installazione.
Questo nuovo ruolo concede solo il permesso di leggere i parametri del server MongoDB a livello di cluster e può essere riutilizzato a scopo di monitoraggio,

