> 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/nl/ondersteuning/support-guides/full-project-history-migration.md).

# (v3.5.13-migratie) Migratie van volledige projectgeschiedenis

## Migratie van volledige projectgeschiedenis

De `3.5.x` release van de Community Edition bevat de [functie Volledige projectgeschiedenis](https://www.overleaf.com/learn/latex/Using_the_History_feature) die al beschikbaar is in ons SaaS-aanbod, [overleaf.com](http://overleaf.com/)

Nadat u uw instantie hebt bijgewerkt naar Overleaf CE `3.5.13`, zullen alle nieuwe projecten standaard Volledige projectgeschiedenis gebruiken. Bestaande projecten blijven het oude historiesysteem gebruiken totdat ze zijn gemigreerd.

{% hint style="info" %}
Als u upgradet naar `3.5.13` en besluit terug te gaan naar een eerdere versie, dan moet u herstellen vanuit een volledige systeem-back-up. De geschiedenis van projecten die zijn aangemaakt in `3.5.13` is niet compatibel met eerdere versies van Overleaf CE.
{% endhint %}

De nieuwe Volledige projectgeschiedenis brengt verschillende verbeteringen voor gebruikers met zich mee:

* Het volgt wijzigingen in binaire bestanden, wat niet wordt ondersteund in het oude systeem.
* Er is ondersteuning voor gelabelde versies.
* Het systeem is over het algemeen robuuster, er is minder kans op gegevensverlies.

Raadpleeg [de documentatie voor Volledige projectgeschiedenis](https://www.overleaf.com/learn/latex/Using_the_History_feature) voor meer informatie over volledige projectgeschiedenis.

### Bestaande projecten migreren

{% stepper %}
{% step %}

#### Maak een back-up

Maak een volledige [back-up](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) van uw instantie met een consistente snapshot van de **mongo**, **redis** en **sharelatex** mappen.
{% endstep %}

{% step %}

#### Bijwerken

Werk de versie van de sharelatex/sharelatex-afbeelding bij naar 3.5.13.

Toolkit: Gebruik het `$ bin/upgrade` script om de toolkit naar de nieuwste versie te upgraden en bewerk **config/version** naar 3.5.13.
{% endstep %}

{% step %}

#### Start de instantie

Idealiter wilt u voorkomen dat gebruikers toegang hebben tot uw instantie terwijl de migratie plaatsvindt, om gegevensverlies te voorkomen voor het geval u uw back-up moet herstellen. Zie [Offline migratie](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) voor meer informatie over hoe u dit doet.
{% endstep %}

{% step %}

#### Wacht totdat alle services actief zijn en draaien

Wacht totdat alle services actief zijn en draaien (zie commando hieronder)

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
web sharelatex is actief (api)%
```

{% endcode %}
{% endstep %}

{% step %}

#### Voer het migratiescript uit

{% code overflow="wrap" %}

```bash
# Gebruikers van 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"

# gebruikers van de oude 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` maakt gedeeltelijk gemigreerde projectgeschiedenisgegevens in het nieuwe systeem schoon; hiermee kan de migratie voor afzonderlijke projecten die eerder mislukten opnieuw worden geprobeerd;

`--fix-invalid-characters` vervangt niet-afdrukbare tekens die niet worden ondersteund door het nieuwe geschiedenis­systeem;

`--convert-large-docs-to-file` converteert documenten die groter zijn dan de bewerkbare grootte­drempel van 2 MB naar een niet-bewerkbaar bestand)

De uitvoer zou er als volgt uit moeten zien:

```bash
Gemigreerde projecten  :  1
Totaal aantal projecten     :  51
Resterende projecten :  51
Totaal aantal geschiedenisrecords om te migreren: 98
Migratie starten...
Project aan het migreren: 63d29b5772dd80015a81bffe
migratieresultaat { upgraded: true, historyType: 'NoneWithoutConversion' }
Project aan het migreren: 63d29c2e72dd80015a81c0a2
migratieresultaat { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migratie voltooid
==================
Projecten gemigreerd:  51
Projecten mislukt:  0
Klaar.
```

Als de migratie succesvol is, krijgt u een exitcode van `0`, en de laatste regels geven aan dat er geen fouten zijn:

```bash
Projecten mislukt:  0
Klaar.
```

U kunt uw gebruikers opnieuw toegang geven (zie volgende stap). Als er fouten zijn, raadpleeg dan het gedeelte met probleemoplossing hieronder. U kunt de site nog steeds opnieuw openen als de problemen niet meteen worden opgelost, en de niet-gemigreerde projecten blijven op het oude historiesysteem staan.
{% endstep %}

{% step %}

#### De site opnieuw openen

Als u ervoor hebt gekozen om een offline migratie uit te voeren, moet u de site opnieuw openen. Als u nog steeds bent ingelogd, moet u:

1. Klik op de **Admin** knop en kies **Site beheren**
2. Klik op het **tabblad Editor openen/sluiten** tabblad
3. Klik op het **Editor opnieuw openen** knop

Als u uw browser hebt gesloten, moet u de site opnieuw starten met `$ bin/up`.
{% endstep %}
{% endstepper %}

#### Offline migratie

Volg deze stappen om te voorkomen dat gebruikers kunnen inloggen terwijl het geschiedenis-migratiescript draait:

* Log in op uw Overleaf-instantie met een beheerdersaccount
* Klik op de **Admin** knop en kies **Site beheren**
* Klik op het **tabblad Editor openen/sluiten** tabblad
* Klik op de **Sluit de editor** knop
* Klik op de **Verbreek de verbinding met alle gebruikers** knop

Zodra dit is gedaan, worden aangemelde gebruikers doorgestuurd naar de onderhoudspagina, en nieuwe gebruikers die de inlogpagina bezoeken zien de onderhoudspagina en **zullen niet** kunnen inloggen.

#### Online migratie

Het is mogelijk om de migratiescripts uit te voeren terwijl de applicatie nog draait. Er zijn enkele aandachtspunten om rekening mee te houden:

* Het migratieproces is CPU-intensief; u moet het gebruik van bronnen monitoren terwijl het script draait.
* Bij een hoge `--concurrency` waarde kan de eventloop in sommige services (`track-changes` met name) enige blokkering ervaren, wat zou leiden tot een mindere UX-ervaring. We raden aan te beginnen met de standaard `--concurrency=1` waarde.
* U kunt het script op elk moment stoppen. Als u het opnieuw start, wordt de migratie hervat vanaf waar u was gebleven. Dit is handig als u de migratie liever uitvoert in minder drukke uren (bijv. 's nachts).

Onze aanbeveling is om de site te sluiten en de migratie offline uit te voeren in een onderhoudsvenster wanneer uw aantal projecten minder is dan 1000 projecten (`db.projects.count()`). Als het aantal projecten groot is, kunt u het script uitvoeren en de voortgang volgen, en daarna op basis van uw specifieke situatie beslissen of u het online of offline verder laat draaien.

#### Oude geschiedenisgegevens opschonen

Er is in Server Pro een script toegevoegd om oude geschiedenisgegevens op te schonen `3.5.6`, `4.0.6` en `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 %}

Het script kan worden uitgevoerd nadat alle projecten zijn gemigreerd. Het kan ook worden gebruikt om wat ruimte vrij te maken tijdens een online migratie.

{% hint style="info" %}
In Server Pro vóór versie 3.5.13 verwijdert het script de inhoud van `docHistory` en `docHistoryIndex` collecties. MongoDB maakt geen schijfruimte vrij nadat u documenten hebt verwijderd; in plaats daarvan wordt die ruimte hergebruikt voor toekomstige documenten in dezelfde collectie. Na de geschiedenis-migratie zal niets meer naar deze collecties schrijven, dus de schijfruimte blijft ongebruikt.

Als u de schijfruimte opnieuw beschikbaar wilt maken, kunt u upgraden naar Server Pro 3.5.13 (wanneer u nog steeds de 3.x-release gebruikt) of Server Pro 4.2.5 (wanneer u de 4.x-release gebruikt) en het opschoningsscript opnieuw uitvoeren.

Het opschoningsscript zoals opgenomen in Server Pro in de nieuwste patchreleases van `3.5.x` en de nieuwste `4.x.x` verwijderen de collecties als laatste stap.

Het is veilig om het opschoningsscript opnieuw uit te voeren.
{% endhint %}

### Probleemoplossing

We zullen hier advies voor probleemoplossing toevoegen. Houd er rekening mee dat we normaal gesproken alleen ondersteuning bieden aan Server Pro-klanten, maar gezien de aard van deze migratie zullen we ook ons best doen om CE-klanten te ondersteunen die problemen ervaren die specifiek zijn voor de migratie van volledige projectgeschiedenis.

Als het migratiescript voor volledige projectgeschiedenis mislukt (d.w\.z. met een fout afsluit of een niet-nul aantal mislukte projecten afdrukt), stuur dan de volgende details per e-mail naar ons ondersteuningsteam [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), met vermelding van:

Onderwerp: Probleem met migratie van volledige projectgeschiedenis

* Instantietype: CE of Server Pro (verwijder indien van toepassing)
* Installatietype: Overleaf toolkit of `docker-compose.yml` of anders (verwijder indien van toepassing)
* Versie: 3.5.x (toolkit: `$ cat config/version`)
* Uitvoer van het migratiescript (die zich in de container zou moeten bevinden onder `/overleaf/services/web`)
* Gemigreerde projecten: (volgens de uitvoer van het migratiescript)
* Totaal aantal projecten: (volgens de uitvoer van het migratiescript)
* Resterende projecten: (volgens de uitvoer van het migratiescript)
* Duur van de migratie:
* `bin/doctor` uitvoer (bij gebruik van toolkit)
* Toolkitversie: `$ git rev-parse HEAD` (bij gebruik van Toolkit)

Overweeg de logbestanden van de `history-v1`, `project-history` en `track-changes` services bij de e-mail mee te sturen. U kunt deze vinden in `/var/log/sharelatex` in de `sharelatex` container en ze zo exporteren:

```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
```

Verwijder gevoelige informatie uit de logbestanden voordat u ze bijvoegt.

#### Beschadigde bestandstructuren vinden

De migratie kan mislukken voor projecten met een misvormde bestandstructuur (bijvoorbeeld wanneer bestandsnamen leeg zijn). U kunt een lijst van deze problemen vinden met behulp van het `find_malformed_filetrees` script dat alle projecten in de database controleert:

{% code overflow="wrap" %}

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

{% endcode %}

Gebruik om de ongeldige paden te herstellen het `fix_malformed_filetree` script, waarbij u het commando eenmaal uitvoert voor elk ongeldig pad:

{% 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 %}

#### Projecten downgraden van volledige projectgeschiedenis naar oude geschiedenis

Als er een project is dat is gemigreerd naar volledige projectgeschiedenis, maar u wilt teruggaan naar de oude geschiedenis, gebruik dan het `downgrade_project` script als volgt:

{% 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/nl/ondersteuning/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.
