> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/el/syntirisi/updating-mongodb.md).

# Ενημέρωση του MongoDB

{% hint style="info" %}
Κάθε νέα έκδοση του Server CE/Server Pro θα υποδεικνύει κάθε αλλαγή στην υποστηριζόμενη έκδοση του MongoDB στις [σημειώσεις έκδοσης](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### Πρέπει να ενημερώσω το MongoDB;

Θα πρέπει **μόνο** να εξετάσετε την ενημέρωση της έκδοσης του MongoDB μόνο αν σκοπεύετε να αναβαθμίσετε την εγκατάσταση του Server CE/Server Pro.

Αν εκτελείτε μια έκδοση MongoDB νεότερη από τη συνιστώμενη για την τρέχουσα (ή την επιθυμητή) έκδοσή σας, δεν χρειάζεται να κάνετε καμία αλλαγή.

{% hint style="warning" %}
Δεν πρέπει ποτέ να κάνετε υποβάθμιση της έκδοσης του MongoDB.
{% endhint %}

Αν αντιμετωπίσετε ένα συγκεκριμένο πρόβλημα που πιστεύετε ότι μπορεί να σχετίζεται με την τρέχουσα έκδοση του MongoDB, μη διστάσετε να [υποβάλετε ένα ζήτημα](https://github.com/overleaf/overleaf/issues) αν είστε χρήστης Server CE ή επικοινωνήστε με την Υποστήριξη Overleaf αν είστε χρήστης Server Pro.

### Έλεγχος της έκδοσης του MongoDB σας

Το άνοιγμα του `mongo` κέλυφους θα πρέπει να εμφανίσει αμέσως την τρέχουσα έκδοση.

Χρήστες του Overleaf Toolkit:

```bash
bin/docker-compose exec mongo mongod --version
έκδοση db v5.0.24
Πληροφορίες κατασκευής: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
```

Χρήστες Docker Compose:

```bash
docker compose exec mongo mongod --version
έκδοση db v5.0.24
Πληροφορίες κατασκευής: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

```

### Διαδικασία ενημέρωσης

Η ενημέρωση της έκδοσης του MongoDB κατά την αναβάθμιση της εγκατάστασής σας Server CE/Server Pro γίνεται ως εξής:

1. Αποφασίστε σε ποια έκδοση Server CE/Server Pro σκοπεύετε να αναβαθμίσετε.
2. Βρείτε την έκδοση του MongoDB που συνιστάται από τη συγκεκριμένη έκδοση του Overleaf Server CE/Server Pro.
3. Ακολουθήστε τις οδηγίες για να αναβαθμίσετε το MongoDB στην επιθυμητή έκδοση.
4. Αναβαθμίστε την έκδοση της εικόνας Server CE/Server Pro και επανεκκινήστε την εγκατάσταση.

Η σύστασή μας είναι να αναβαθμίζετε πάντα **τον Server CE/Server Pro** στην πιο πρόσφατη διαθέσιμη έκδοση, καθώς έτσι είναι πάντα εγγυημένο ότι υποστηρίζεται (μόνο για χρήστες Server Pro).

{% hint style="danger" %}
Κατά την αναβάθμιση του Server CE/Pro, συνιστούμε να αναβαθμίζετε στην πιο πρόσφατη έκδοση της εγκατεστημένης κύριας έκδοσης **πριν** την αναβάθμιση στην πιο πρόσφατη έκδοση της **επόμενης** κύριας έκδοσης. Αν η εγκατάστασή σας βρίσκεται περισσότερες από μία κύριες εκδόσεις πίσω από την πιο πρόσφατη, θα χρειαστεί να πραγματοποιήσετε αναβάθμιση σε πολλαπλά βήματα.

Για παράδειγμα, αν εκτελείτε την 3.5.10, θα χρειαστεί να αναβαθμίσετε σε 3.5.13 -> Να εκτελέσετε τη μετεγκατάσταση Full Project History -> 4.2.9 -> 5.5.4.

Θα πρέπει **ποτέ** μην παραλείπετε κύριες εκδόσεις (3.5.10 -> 5.5.4). Αν χρησιμοποιείτε το Toolkit και βρίσκεστε περισσότερες από μία κύριες εκδόσεις πίσω από την πιο πρόσφατη, πρέπει να **να μην** χρησιμοποιείτε το `bin/upgrade` σενάριο, καθώς θα χρειαστεί να πραγματοποιήσετε χειροκίνητη αναβάθμιση σε πολλαπλά βήματα.
{% endhint %}

{% hint style="warning" %}
Είναι σημαντικό να βεβαιωθείτε ότι παίρνετε ένα [συνεπές αντίγραφο ασφαλείας](/on-premises/el/syntirisi/data-and-backups.md#performing-a-consistent-backup) **πριν** σε κάθε αναβάθμιση κύριας έκδοσης, ώστε να μπορείτε να επανέλθετε αν χρειαστεί.
{% endhint %}

#### Πληροφορίες υποστήριξης εκδόσεων

Σε περίπτωση που αποφασίσετε να επιστρέψετε σε παλαιότερη έκδοση, αυτός ο πίνακας δείχνει τη συνιστώμενη έκδοση του MongoDB για παλαιότερες εκδόσεις του Server CE/Server Pro, αλλά θα πρέπει να **ποτέ** να υποβαθμίσετε την έκδοση του MongoDB σας.

<table><thead><tr><th width="175">τον Server CE/Server Pro</th><th width="139" align="center">Έκδοση MongoDB</th><th align="center">Ελάχιστη έκδοση συμβατότητας δυνατοτήτων</th><th align="center">Μέγιστη έκδοση που υποστηρίζεται από τον οδηγό Node.js</th></tr></thead><tbody><tr><td>2.0.x</td><td align="center">3.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>2.1.x έως 2.4.x</td><td align="center">3.6</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=2.5.0</td><td align="center">4.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.1.0</td><td align="center">4.2</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.2.0</td><td align="center">4.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=4.2.0</td><td align="center">5.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.1.0</td><td align="center">6.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.3.1</td><td align="center">6.0</td><td align="center">5.0</td><td align="center">8.0</td></tr><tr><td>>=5.5.0</td><td align="center">6.0</td><td align="center">6.0</td><td align="center">8.0</td></tr><tr><td>6.0.0</td><td align="center">8.0</td><td align="center">8.0</td><td align="center">8.0</td></tr></tbody></table>

{% hint style="danger" %}
Η παραπάνω ελάχιστη έκδοση συμβατότητας δυνατοτήτων βασίζεται στη αντίστοιχη έκδοση MongoDB που συνιστάται για χρήση με την έκδοση του Overleaf που εμφανίζεται. Αν σκοπεύετε να χρησιμοποιήσετε υψηλότερη έκδοση, το MongoDB θα έχει τη δική του ελάχιστη απαίτηση.
{% endhint %}

Μπορείτε να δείτε τον πίνακα συμβατότητας που καθορίζει τις υποστηριζόμενες εκδόσεις του οδηγού MongoDB Node.js για χρήση με το MongoDB [εδώ](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Μπορείτε να δείτε την κατάσταση τέλους υποστήριξης για κάθε έκδοση του MongoDB [εδώ](https://endoflife.date/mongodb).

#### Αναβάθμιση του MongoDB

Το MongoDB απαιτεί **αναβαθμίσεις βήμα προς βήμα**. Αυτό σημαίνει ότι δεν μπορείτε να περάσετε κατευθείαν από, ας πούμε `4.0` σε `5.0`. Πρέπει πρώτα να ενημερώσετε `4.2` σε `4.4`και μετά `5.0`.

{% hint style="info" %}
Το MongoDB χρησιμοποιεί ζυγούς αριθμούς για τις σταθερές εκδόσεις του.
{% endhint %}

#### **Οδηγίες ενημέρωσης όταν εκτελείτε το MongoDB εκτός Docker**

Ακολουθούν σύνδεσμοι προς τις οδηγίες ενημέρωσης από το mongodb.com κατά την αναβάθμιση του MongoDB.

* [Σημειώσεις έκδοσης MongoDB - αναβάθμιση του MongoDB από `4.2` σε `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [Σημειώσεις έκδοσης MongoDB - αναβάθμιση του MongoDB από `4.4` σε `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [Σημειώσεις έκδοσης MongoDB - αναβάθμιση του MongoDB από `5.0` σε `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [Σημειώσεις έκδοσης MongoDB - αναβάθμιση του MongoDB από `6.0` σε `7.0`](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)
* [Σημειώσεις έκδοσης MongoDB - αναβάθμιση του MongoDB από `7.0` σε `8.0`](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set)

{% hint style="info" %}
Οι οδηγίες για `5.0` και νεότερα αναφέρονται σε εγκατάσταση replica set, αντί για standalone. Εφόσον το Server Pro/CE 4.0.1+ χρησιμοποιεί συναλλαγές, το MongoDB πρέπει να εκτελείται ως replica set.
{% endhint %}

{% hint style="warning" %}
Η τεκμηρίωση για το MongoDB 3.2 έως 4.2 είναι πλέον διαθέσιμη μέσω του <https://www.mongodb.com/docs/legacy/>
{% endhint %}

**Βασικές οδηγίες**

Στις περισσότερες περιπτώσεις η ενημέρωση απαιτεί τη ρύθμιση ενός δείκτη συμβατότητας πριν από την πραγματική ενημέρωση της έκδοσης του mongo. Τα βήματα είναι τα εξής:

1. Ορίστε τον δείκτη συμβατότητας όπως περιγράφεται στις σημειώσεις έκδοσης του MongoDB (δείτε τα παραδείγματα παρακάτω).
2. Έπειτα ενημερώστε την εικόνα mongo:
   1. **Χρήστες Toolkit** Ενημερώστε `MONGO_VERSION`, π.χ. `MONGO_VERSION=6.0`
   2. **Χρήστες Docker Compose** Ενημερώστε την έκδοση της `mongo` ετικέτας εικόνας,\
      π.χ. `services -> mongo -> image: mongo:6.0`;

**Παράδειγμα: Αναβάθμιση του MongoDB από `5.0` σε `6.0`**

Ας ξεκινήσουμε βεβαιώνοντας ότι εκτελούμε το MongoDB `6.0`:

Χρήστες του Overleaf Toolkit:

```bash
bin/docker-compose exec mongo mongod --version
# db version v5.0.24
```

Χρήστες Docker Compose:

```bash
docker compose exec mongo mongod --version
# db version v5.0.24
```

Σύμφωνα με τις [οδηγίες αναβάθμισης](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path), η μόνη απαίτηση είναι να έχει οριστεί το `featureCompatibilityVersion` σε `5.0`. Το κάνουμε ανοίγοντας ένα MongoDB shell και εκτελώντας την ενδεικνυόμενη εντολή:

Χρήστες του Overleaf Toolkit:

```bash
bin/mongo
# έκδοση shell MongoDB v5.0.24
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# αντίο
```

{% hint style="info" %}
Οι χρήστες Docker Compose μπορούν να εκτελέσουν `docker compose exec mongo mongosh` για να ανοίξουν ένα shell και να εκτελέσουν τις ίδιες εντολές με τους χρήστες του Toolkit.
{% endhint %}

Χρήστες του Overleaf Toolkit:

Στη συνέχεια θα σταματήσουμε τις εγκαταστάσεις Server CE/Server Pro και MongoDB χρησιμοποιώντας την `bin/stop` εντολή, θα ορίσουμε `MONGO_VERSION=6.0` στο `config/overleaf.rc`, και μετά θα επανεκκινήσουμε την `mongo` υπηρεσία χρησιμοποιώντας το `bin/up mongo`) για να επαληθεύσουμε ότι η ενημέρωση ολοκληρώθηκε ομαλά.

Τέλος, θα ενημερώσουμε την έκδοση της εικόνας Server CE/Server Pro στην επιθυμητή έκδοση και θα αναδημιουργήσουμε όλες τις υπηρεσίες χρησιμοποιώντας την `bin/up -d` εντολή.

Χρήστες Docker Compose:

Στη συνέχεια θα σταματήσουμε τις εγκαταστάσεις Server CE/Server Pro και MongoDB χρησιμοποιώντας την `docker compose stop` εντολή, ενημερώστε το [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) αρχείο ώστε να χρησιμοποιεί `image: mongo:6.0`, και μετά θα επανεκκινήσουμε την `mongo` υπηρεσία χρησιμοποιώντας την `docker compose up mongo` εντολή για να επαληθεύσετε ότι η ενημέρωση ολοκληρώθηκε ομαλά.

Τέλος, θα ενημερώσουμε την έκδοση της εικόνας Server CE/Server Pro στην επιθυμητή έκδοση και θα αναδημιουργήσουμε όλες τις υπηρεσίες χρησιμοποιώντας την `docker compose up` εντολή.

**Παράδειγμα: Αναβάθμιση του MongoDB από `6.0` σε `7.0` (χρήστες toolkit)**

Ξεκινήστε βεβαιώνοντας ότι εκτελείτε το MongoDB `6.0` χρησιμοποιώντας τις `mongod --version` παραπάνω εντολές.

Σύμφωνα με τις [οδηγίες αναβάθμισης](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set), η μόνη απαίτηση είναι να έχει οριστεί το `featureCompatibilityVersion` σε `6.0`. Το κάνουμε ανοίγοντας ένα MongoDB shell και εκτελώντας την εντολή `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Χρήστες του Overleaf Toolkit:

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# αντίο
```

Στη συνέχεια θα σταματήσουμε τις εγκαταστάσεις Server CE/Server Pro και MongoDB χρησιμοποιώντας την `bin/stop` εντολή, θα ορίσουμε `MONGO_VERSION=7.0` στο `config/overleaf.rc`, και μετά θα επανεκκινήσουμε την `mongo` υπηρεσία χρησιμοποιώντας το `bin/up mongo`) για να επαληθεύσουμε ότι η ενημέρωση ολοκληρώθηκε ομαλά.

Τέλος, θα ενημερώσουμε την έκδοση της εικόνας Server CE/Server Pro στην επιθυμητή έκδοση και θα αναδημιουργήσουμε όλες τις υπηρεσίες χρησιμοποιώντας την `bin/up -d` εντολή.

**Παράδειγμα: Αναβάθμιση του MongoDB από `7.0` σε `8.0` (χρήστες toolkit)**

Ξεκινήστε βεβαιώνοντας ότι εκτελείτε το MongoDB `7.0` χρησιμοποιώντας τις `mongod --version` παραπάνω εντολές.

Σύμφωνα με τις [οδηγίες αναβάθμισης](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set), η μόνη απαίτηση είναι να έχει οριστεί το `featureCompatibilityVersion` σε `7.0`. Το κάνουμε ανοίγοντας ένα MongoDB shell και εκτελώντας την εντολή `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Σημειώστε ότι αυτό πλέον απαιτεί μια πρόσθετη `confirm: true` παράμετρο.

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "7.0", confirm: true } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# αντίο
```

Στη συνέχεια θα σταματήσουμε τις εγκαταστάσεις Server CE/Server Pro και MongoDB χρησιμοποιώντας την `bin/stop` εντολή, θα ορίσουμε `MONGO_VERSION=8.0` στο `config/overleaf.rc`, και μετά θα επανεκκινήσουμε την `mongo` υπηρεσία χρησιμοποιώντας το `bin/up mongo`) για να επαληθεύσουμε ότι η ενημέρωση ολοκληρώθηκε ομαλά.

Τέλος, θα ενημερώσουμε την έκδοση της εικόνας Server CE/Server Pro στην επιθυμητή έκδοση και θα αναδημιουργήσουμε όλες τις υπηρεσίες χρησιμοποιώντας την `bin/up -d` εντολή.

#### Ισοδύναμες εντολές για χρήστες docker compose

Για χρήστες docker compose, η αντίστοιχη εντολή είναι:

* `docker compose exec mongo mongod --version` για να εμφανίσετε την έκδοση του mongo
* `docker compose exec mongo mongosh` για να ξεκινήσετε ένα mongo shell για εντολές διαχειριστή
* `docker compose stop` εντολή για να σταματήσετε τον server
* Επεξεργαστείτε το [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) αρχείο ώστε να χρησιμοποιεί `image: mongo:6.0` για να αναβαθμίσετε την έκδοση του mongo
* `docker compose up mongo` για να επανεκκινήσετε την υπηρεσία mongo και να επαληθεύσετε ότι η ενημέρωση ολοκληρώθηκε ομαλά
* Επεξεργαστείτε το [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) αρχείο ώστε να χρησιμοποιεί `image: sharelatex:VERSION` για να αναβαθμίσετε την έκδοση της εικόνας
* `docker compose up` για να αναδημιουργήσετε όλες τις υπηρεσίες.

### Δημιουργία προσαρμοσμένου ρόλου

Στην έκδοση `5.5.1`, εισαγάγαμε έναν έλεγχο κατά την εκκίνηση για να επαληθεύσουμε την έκδοση συμβατότητας δυνατοτήτων για το MongoDB. Αν η βάση δεδομένων MongoDB σας χρησιμοποιεί πιστοποίηση ταυτότητας (π.χ. βασική πιστοποίηση), το `sharelatex` container ενδέχεται να μην ξεκινήσει, εμφανίζοντας ένα σφάλμα άδειας "*not authorized on admin to execute command*".

Για να το επιλύσετε, μπορείτε είτε να δημιουργήσετε έναν νέο ρόλο στο MongoDB και να τον αναθέσετε στον λογαριασμό χρήστη που χρησιμοποιείται για πρόσβαση στη βάση δεδομένων, ακολουθώντας τις παρακάτω οδηγίες, είτε να ορίσετε `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` ώστε να επιτρέψετε στον έλεγχο να αποτύχει χωρίς να εμποδίσει την έναρξη της ανάπτυξης.

{% hint style="success" %}
Αυτός ο νέος ρόλος **μόνο** παρέχει άδεια ανάγνωσης παραμέτρων του διακομιστή MongoDB σε επίπεδο cluster και θα μπορούσε να επαναχρησιμοποιηθεί για σκοπούς παρακολούθησης,
{% endhint %}

{% code overflow="wrap" %}

```bash
# Χρήστες Toolkit
$ bin/docker-compose exec -it mongo mongosh -u {{YOUR-ADMIN-USERNAME}} -p

# Μεταβείτε στη βάση δεδομένων "admin" χρησιμοποιώντας
overleaf [direct: primary] sharelatex> use admin
μεταβήκατε στη βάση δεδομένων admin
overleaf [direct: primary] admin> 

# Δημιουργήστε έναν νέο ρόλο με άδεια χρήσης του "getParamter". Αντιγράψτε και επικολλήστε τη συνάρτηση παρακάτω στο shell και πατήστε το πλήκτρο επιστροφής

db.createRole(
  {
    role: "clusterParameterReader",
    privileges: [
      {
        resource: { cluster: true },
        actions: ["getParameter"]    
      }
    ],
    roles: [] 
  }
);

# Επιστρέψτε στη βάση δεδομένων "sharelatex" 
use sharelatex
μεταβήκατε στη βάση δεδομένων sharelatex
overleaf [direct: primary] sharelatex> 

# Αναθέστε τον νέο ρόλο "clusterParameterReader" στον χρήστη της βάσης δεδομένων σας αντιγράφοντας και επικολλώντας τη συνάρτηση παρακάτω στο shell και πατώντας το πλήκτρο επιστροφής 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Πληκτρολογήστε exit και μετά πατήστε επιστροφή για να εξέλθετε από το MongoDB shell
# Εκτελέστε bin/up -d για να ξεκινήσετε τη στοίβα ανάπτυξης
$ bin/up -d
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/el/syntirisi/updating-mongodb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
