> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/on-premises/el/ypostiriksi/support-guides/full-project-history-migration.md).

# (Μετάβαση v3.5.13) Μετάβαση πλήρους ιστορικού έργου

## Μεταφορά πλήρους ιστορικού έργου

Το `3.5.x` η έκδοση Community Edition περιλαμβάνει το [χαρακτηριστικό Πλήρους Ιστορικού Έργου](https://www.overleaf.com/learn/latex/Using_the_History_feature) το οποίο είναι ήδη διαθέσιμο στην προσφορά SaaS μας, [overleaf.com](http://overleaf.com/)

Αφού αναβαθμίσετε το instance σας σε Overleaf CE `3.5.13`, όλα τα νέα έργα θα χρησιμοποιούν από προεπιλογή το Πλήρες Ιστορικό Έργου. Τα υπάρχοντα έργα θα συνεχίσουν να χρησιμοποιούν το παλαιό σύστημα Ιστορικού, μέχρι να μεταφερθούν.

{% hint style="info" %}
Αν αναβαθμίσετε σε `3.5.13` και αποφασίσετε να υποβαθμίσετε σε παλαιότερη έκδοση, τότε θα πρέπει να επαναφέρετε από πλήρες αντίγραφο ασφαλείας συστήματος. Το ιστορικό των έργων που δημιουργήθηκαν στο `3.5.13` δεν είναι συμβατό με παλαιότερες εκδόσεις του Overleaf CE.
{% endhint %}

Το νέο Πλήρες Ιστορικό Έργου φέρνει αρκετές βελτιώσεις για τους χρήστες:

* Παρακολουθεί αλλαγές σε δυαδικά αρχεία, κάτι που δεν υποστηρίζεται στο παλαιό σύστημα.
* Υπάρχει υποστήριξη για εκδόσεις με ετικέτες.
* Το σύστημα είναι γενικά πιο αξιόπιστο, υπάρχει μικρότερη πιθανότητα απώλειας δεδομένων.

Ελέγξτε [την τεκμηρίωση του Πλήρους Ιστορικού Έργου](https://www.overleaf.com/learn/latex/Using_the_History_feature) για περισσότερες πληροφορίες σχετικά με το πλήρες ιστορικό έργου.

### Μεταφορά υπαρχόντων έργων

{% stepper %}
{% step %}

#### Δημιουργήστε αντίγραφο ασφαλείας

Δημιουργήστε ένα πλήρες [αντίγραφο ασφαλείας](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) του instance σας με ένα συνεπές στιγμιότυπο των **mongo**, **redis** και **sharelatex** καταλόγων.
{% endstep %}

{% step %}

#### Ενημερώστε

Ενημερώστε την έκδοση της εικόνας sharelatex/sharelatex σε 3.5.13.

Toolkit: Χρησιμοποιήστε το `$ bin/upgrade` σενάριο για αναβάθμιση του toolkit στην πιο πρόσφατη έκδοση και επεξεργαστείτε **config/version** σε 3.5.13.
{% endstep %}

{% step %}

#### Εκκινήστε την εγκατάσταση

Ιδανικά, θα θέλατε να αποτρέψετε τους χρήστες από το να έχουν πρόσβαση στο instance σας ενώ πραγματοποιείται η μεταφορά, ώστε να αποφύγετε απώλεια δεδομένων σε περίπτωση που χρειαστεί να επαναφέρετε το αντίγραφο ασφαλείας σας. Δείτε [Μεταφορά εκτός σύνδεσης](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) για περισσότερες πληροφορίες σχετικά με το πώς να το κάνετε αυτό.
{% endstep %}

{% step %}

#### Περιμένετε μέχρι όλες οι υπηρεσίες να έχουν ξεκινήσει και να εκτελούνται

Περιμένετε μέχρι όλες οι υπηρεσίες να έχουν ξεκινήσει και να εκτελούνται (δείτε την εντολή παρακάτω)

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
το web sharelatex είναι ενεργό (api)%
```

{% endcode %}
{% endstep %}

{% step %}

#### Εκτελέστε το σενάριο μεταφοράς

{% code overflow="wrap" %}

```bash
# Για χρήστες του Overleaf Toolkit:
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"

# Για χρήστες του παλαιού docker-compose.yml:
$ docker exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"
```

{% endcode %}

`--force-clean` καθαρίζει μερικώς μεταφερμένα δεδομένα ιστορικού έργου στο νέο σύστημα, αυτό επιτρέπει την επανάληψη της μεταφοράς για μεμονωμένα έργα που απέτυχαν σε προηγούμενες προσπάθειες;

`--fix-invalid-characters` αντικαθιστά μη εκτυπώσιμους χαρακτήρες που δεν υποστηρίζονται από το νέο σύστημα ιστορικού;

`--convert-large-docs-to-file` μετατρέπει έγγραφα που είναι πάνω από το όριο μεγέθους 2MB για επεξεργασία σε μη επεξεργάσιμο αρχείο)

Η έξοδος θα πρέπει να μοιάζει κάπως έτσι:

```bash
Μεταφερθέντα Έργα  :  1
Σύνολο Έργων      :  51
Υπολειπόμενα Έργα :  51
Συνολικά αρχεία ιστορικού προς μεταφορά: 98
Έναρξη μεταφοράς...
Μεταφορά έργου: 63d29b5772dd80015a81bffe
αποτέλεσμα μεταφοράς { upgraded: true, historyType: 'NoneWithoutConversion' }
Μεταφορά έργου: 63d29c2e72dd80015a81c0a2
αποτέλεσμα μεταφοράς { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Η μεταφορά ολοκληρώθηκε
==================
Έργα που μεταφέρθηκαν:  51
Έργα που απέτυχαν:  0
Ολοκληρώθηκε.
```

Αν η μεταφορά είναι επιτυχής, θα λάβετε κωδικό εξόδου `0`, και τις τελευταίες γραμμές που υποδεικνύουν ότι δεν υπήρξαν αποτυχίες:

```bash
Έργα που απέτυχαν:  0
Ολοκληρώθηκε.
```

Μπορείτε να ανοίξετε ξανά την πρόσβαση στους χρήστες σας (δείτε το επόμενο βήμα). Αν υπάρχουν αποτυχίες, ανατρέξτε παρακάτω στην ενότητα αντιμετώπισης προβλημάτων. Μπορείτε ακόμη να ανοίξετε ξανά τον ιστότοπο αν τα προβλήματα δεν διορθωθούν άμεσα, και τα μη μεταφερμένα έργα θα παραμείνουν στο παλαιό σύστημα ιστορικού.
{% endstep %}

{% step %}

#### Ανοίξτε ξανά τον ιστότοπο

Αν είχατε επιλέξει να πραγματοποιήσετε μεταφορά εκτός σύνδεσης, τότε θα χρειαστεί να ανοίξετε ξανά τον ιστότοπο. Αν είστε ακόμη συνδεδεμένοι, θα χρειαστεί να:

1. Κάντε κλικ στο **Διαχειριστής** το κουμπί και επιλέξτε **Διαχείριση ιστότοπου**
2. Κάντε κλικ στο **Άνοιγμα/Κλείσιμο επεξεργαστή** καρτέλα
3. Κάντε κλικ στο **Επαναφορά επεξεργαστή** κουμπί

Αν έχετε κλείσει το πρόγραμμα περιήγησής σας, τότε θα χρειαστεί να επανεκκινήσετε τον ιστότοπο με `$ bin/up`.
{% endstep %}
{% endstepper %}

#### Μεταφορά εκτός σύνδεσης

Για να αποτρέψετε τους χρήστες από το να μπορούν να συνδεθούν ενώ εκτελείται το σενάριο μεταφοράς ιστορικού, ακολουθήστε τα παρακάτω βήματα:

* Συνδεθείτε στο instance του Overleaf με λογαριασμό διαχειριστή
* Κάντε κλικ στο **Διαχειριστής** το κουμπί και επιλέξτε **Διαχείριση ιστότοπου**
* Κάντε κλικ στο **Άνοιγμα/Κλείσιμο επεξεργαστή** καρτέλα
* Κάντε κλικ στο **Κλείσιμο επεξεργαστή** κουμπί
* Κάντε κλικ στο **Αποσύνδεση όλων των χρηστών** κουμπί

Μόλις γίνει αυτό, αν υπάρχουν συνδεδεμένοι χρήστες θα ανακατευθυνθούν στη σελίδα συντήρησης, και οποιοιδήποτε νέοι χρήστες που επισκέπτονται τη σελίδα σύνδεσης θα δουν τη σελίδα συντήρησης και **δεν θα** μπορούν να συνδεθούν.

#### Μεταφορά online

Είναι δυνατό να εκτελέσετε τα σενάρια μεταφοράς ενώ η εφαρμογή εξακολουθεί να εκτελείται. Υπάρχουν μερικές παράμετροι που πρέπει να ληφθούν υπόψη:

* Η διαδικασία μεταφοράς είναι απαιτητική σε CPU, θα πρέπει να παρακολουθείτε τη χρήση πόρων ενώ εκτελείται το σενάριο.
* Με υψηλή `--concurrency` τιμή, ο event loop σε ορισμένες υπηρεσίες (`track-changes` ιδίως) μπορεί να παρουσιάσει κάποια μπλοκαρίσματα, κάτι που θα οδηγήσει σε υποβαθμισμένη εμπειρία UX. Συνιστούμε να ξεκινήσετε με την προεπιλεγμένη `--concurrency=1` τιμή.
* Μπορείτε να σταματήσετε το σενάριο οποιαδήποτε στιγμή. Αν το ξεκινήσετε ξανά, η μεταφορά θα συνεχιστεί από εκεί που την αφήσατε. Αυτό είναι χρήσιμο αν προτιμάτε να εκτελείτε τη μεταφορά σε ώρες με λιγότερη κίνηση (π.χ. τη νύχτα).

Η σύστασή μας είναι να κλείσετε τον ιστότοπο και να εκτελέσετε τη μεταφορά εκτός σύνδεσης σε ένα παράθυρο συντήρησης όταν ο αριθμός των έργων σας είναι μικρότερος από 1000 έργα (`db.projects.count()`). Αν ο αριθμός των έργων είναι μεγάλος, μπορείτε να εκτελέσετε το σενάριο και να παρακολουθείτε την πρόοδό του, και στη συνέχεια να αποφασίσετε αν θα συνεχίσετε να το εκτελείτε online ή offline, με βάση τη συγκεκριμένη περίπτωσή σας.

#### Καθαρισμός παλαιών δεδομένων ιστορικού

Ένα σενάριο για τον καθαρισμό παλαιών δεδομένων ιστορικού προστέθηκε στο Server Pro `3.5.6`, `4.0.6` και `4.1.0`.

{% code overflow="wrap" %}

```bash
bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/history/clean_sl_history_data.js"
```

{% endcode %}

Το σενάριο μπορεί να εκτελεστεί αφού όλα τα έργα έχουν μεταφερθεί. Μπορεί επίσης να χρησιμοποιηθεί για να ελευθερωθεί χώρος κατά την εκτέλεση μιας online μεταφοράς.

{% hint style="info" %}
Στο Server Pro πριν από την έκδοση 3.5.13, το σενάριο διαγράφει το περιεχόμενο των `docHistory` και `docHistoryIndex` συλλογών. Το MongoDB δεν ελευθερώνει χώρο στον δίσκο μετά τη διαγραφή εγγράφων, αντίθετα, θα επαναχρησιμοποιήσει αυτόν τον χώρο για μελλοντικά έγγραφα στην ίδια συλλογή. Τίποτα δεν θα γράφει ξανά σε αυτές τις συλλογές μετά τη μεταφορά ιστορικού, επομένως ο χώρος στον δίσκο θα παραμείνει αχρησιμοποίητος.

Αν θέλετε να καταστήσετε ξανά διαθέσιμο τον χώρο στον δίσκο, μπορείτε να αναβαθμίσετε σε Server Pro 3.5.13 (όταν εξακολουθείτε να χρησιμοποιείτε τη σειρά 3.x) ή σε Server Pro 4.2.5 (όταν χρησιμοποιείτε τη σειρά 4.x) και να εκτελέσετε ξανά το σενάριο καθαρισμού.

Το σενάριο καθαρισμού, όπως περιλαμβάνεται στο Server Pro, στις πιο πρόσφατες εκδόσεις patch του `3.5.x` και τις πιο πρόσφατες `4.x.x` διαγράφουν τις συλλογές ως τελικό βήμα.

Είναι ασφαλές να εκτελέσετε ξανά το σενάριο καθαρισμού.
{% endhint %}

### Αντιμετώπιση προβλημάτων

Θα προσθέσουμε εδώ συμβουλές αντιμετώπισης προβλημάτων. Σημειώστε ότι, ενώ κανονικά παρέχουμε υποστήριξη μόνο σε πελάτες Server Pro, λόγω της φύσης αυτής της μεταφοράς, θα κάνουμε επίσης ό,τι καλύτερο μπορούμε για να υποστηρίξουμε πελάτες CE που αντιμετωπίζουν προβλήματα ειδικά για τη μεταφορά πλήρους ιστορικού έργου.

Αν το σενάριο μεταφοράς πλήρους ιστορικού έργου αποτύχει (δηλαδή τερματίσει με σφάλμα ή εκτυπώσει μη μηδενικό αριθμό αποτυχημένων έργων), στείλτε τις παρακάτω λεπτομέρειες στην ομάδα υποστήριξής μας μέσω email [support+historymigration@overleaf.com](mailto:support+historymigration@overleaf.com?subject=Full%20project%20history%20migration%20problem\&body=Instance%20Type%3A%20CE%20or%20Server%20Pro%20%28delete%20as%20appropriate%29%0A%0AInstallation%20Type%3A%20Overleaf%20toolkit%20or%20docker-compose.yml%20or%20other%20%28delete%20as%20appropriate%29%0A%0AScript%20output%3A%0A%0Abin%2Fdoctor%20output%20%28if%20using%20toolkit%29%3A%0A), αναφέροντας:

Θέμα: Πρόβλημα μεταφοράς πλήρους ιστορικού έργου

* Τύπος Instance: CE ή Server Pro (διαγράψτε ό,τι δεν ισχύει)
* Τύπος εγκατάστασης: Overleaf toolkit ή `docker-compose.yml` ή άλλο (διαγράψτε ό,τι δεν ισχύει)
* Έκδοση: 3.5.x (toolkit: `$ cat config/version`)
* Έξοδος του σεναρίου μεταφοράς (η οποία θα πρέπει να βρίσκεται στο container κάτω από το `/overleaf/services/web`)
* Μεταφερθέντα Έργα: (όπως προκύπτει από την έξοδο του σεναρίου μεταφοράς)
* Σύνολο Έργων: (όπως προκύπτει από την έξοδο του σεναρίου μεταφοράς)
* Υπολειπόμενα Έργα: (όπως προκύπτει από την έξοδο του σεναρίου μεταφοράς)
* Διάρκεια της μεταφοράς:
* `bin/doctor` έξοδος (όταν χρησιμοποιείτε το toolkit)
* Έκδοση Toolkit: `$ git rev-parse HEAD` (όταν χρησιμοποιείτε το Toolkit)

Σκεφτείτε να επισυνάψετε τα αρχεία καταγραφής για τις `history-v1`, `project-history` και `track-changes` υπηρεσίες στο email. Μπορείτε να τα βρείτε στο `/var/log/sharelatex` μέσα στο `sharelatex` container και εξαγάγετέ τα έτσι:

```bash
$ docker cp sharelatex:/var/log/sharelatex/history-v1.log history-v1.log
$ docker cp sharelatex:/var/log/sharelatex/project-history.log project-history.log
$ docker cp sharelatex:/var/log/sharelatex/track-changes.log track-changes.log
```

Παρακαλούμε αφαιρέστε οποιαδήποτε ευαίσθητη πληροφορία από τα αρχεία καταγραφής πριν τα επισυνάψετε.

#### Εύρεση κατεστραμμένων δέντρων αρχείων

Η μεταφορά ενδέχεται να αποτύχει για έργα που έχουν κακοσχηματισμένο δέντρο αρχείων (για παράδειγμα, όταν τα ονόματα αρχείων είναι κενά). Μπορείτε να βρείτε μια λίστα με αυτά τα προβλήματα χρησιμοποιώντας το `find_malformed_filetrees` σενάριο που ελέγχει όλα τα έργα στη βάση δεδομένων:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/find_malformed_filetrees.js"
BAD PATH: 123456789012345678901234 rootFolder.0.1.2.3
BAD PATH: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

Για να διορθώσετε τις μη έγκυρες διαδρομές, χρησιμοποιήστε το `fix_malformed_filetree` σενάριο, εκτελώντας την εντολή μία φορά για κάθε κακή διαδρομή:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.1.2.3"
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.4.5.6"
...
```

{% endcode %}

#### Υποβάθμιση έργων από πλήρες ιστορικό έργου σε παλαιό ιστορικό

Αν υπάρχει ένα έργο που έχει μεταφερθεί σε πλήρες ιστορικό έργου αλλά θέλετε να επιστρέψετε στο παλαιό ιστορικό, χρησιμοποιήστε το `downgrade_project` σενάριο ως εξής:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; PROJECT_ID=YOUR
```

{% 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://overleaf-pro.ayaka.space/on-premises/el/ypostiriksi/support-guides/full-project-history-migration.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.
