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

# (Migratie v3.5.13) 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/)

Na het upgraden van je instantie naar Overleaf CE `3.5.13`, zullen alle nieuwe projecten standaard Volledige projectgeschiedenis gebruiken. Bestaande projecten blijven het legacy geschiedenis­systeem gebruiken totdat ze zijn gemigreerd.

{% hint style="info" %}
Als je upgradet naar `3.5.13` en besluit terug te downgraden naar een eerdere versie, dan moet je herstellen vanuit een volledige systeemback-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 houdt wijzigingen in binaire bestanden bij, wat niet wordt ondersteund in het legacy systeem.
* Er is ondersteuning voor gelabelde versies.
* Het systeem is over het algemeen robuuster, de kans op gegevensverlies is kleiner.

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 je instantie met een consistente snapshot van de **mongo**, **redis** en **sharelatex** mappen.
{% endstep %}

{% step %}

#### Werk bij

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

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

{% step %}

#### Start de instantie

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

{% step %}

#### Wacht tot alle services actief en draaiend zijn

Wacht tot alle services actief en draaiend zijn (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 legacy 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` verwijdert gedeeltelijk gemigreerde projectgeschiedenisgegevens in het nieuwe systeem; hiermee kan de migratie opnieuw worden geprobeerd voor afzonderlijke projecten die bij eerdere pogingen zijn mislukt;

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

`--convert-large-docs-to-file` converteert documenten die boven de bewerkbare-grootte­drempel van 2 MB liggen 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 migreren: 63d29b5772dd80015a81bffe
migratieresultaat { upgraded: true, historyType: 'NoneWithoutConversion' }
Project migreren: 63d29c2e72dd80015a81c0a2
migratieresultaat { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

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

Als de migratie succesvol is, krijg je een exitcode van `0`, en de laatste regels geven aan dat er geen mislukkingen zijn:

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

Je kunt gebruikers weer toegang geven (zie volgende stap). Als er mislukkingen zijn, raadpleeg dan het gedeelte voor probleemoplossing hieronder. Je kunt de site nog steeds weer openen als de problemen niet meteen worden opgelost, en de niet-gemigreerde projecten blijven op het legacy historiesysteem.
{% endstep %}

{% step %}

#### De site weer openen

Als je ervoor had gekozen om een offline migratie uit te voeren, moet je de site weer openen. Als je nog steeds bent ingelogd, moet je:

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

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

#### Offline migratie

Om te voorkomen dat gebruikers kunnen inloggen terwijl het historiescript draait, volg je deze stappen:

* Log in op je Overleaf-instantie met een beheerdersaccount
* Klik op de **Beheerder** knop en kies **Site beheren**
* Klik de **Editor openen/sluiten** tabblad
* Klik op de **Editor sluiten** knop
* Klik op de **Alle gebruikers loskoppelen** knop

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

#### Online migratie

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

* Het migratieproces gebruikt veel CPU; je moet het resourcegebruik monitoren terwijl het script draait.
* Bij een hoge `--concurrency` waarde kan de eventloop in sommige services (`track-changes` in het bijzonder) enige blokkering ondervinden, wat zou leiden tot een verslechterde UX-ervaring. We raden aan te beginnen met de standaard `--concurrency=1` waarde.
* Je kunt het script op elk moment stoppen. Als je het opnieuw start, wordt de migratie hervat vanaf waar je was gebleven. Dit is handig als je 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 tijdens een onderhoudsvenster wanneer je projectaantal minder is dan 1000 projecten (`db.projects.count()`). Als het aantal projecten groot is, kun je het script uitvoeren en de voortgang bewaken, en vervolgens op basis van je specifieke situatie beslissen of je het online of offline blijft uitvoeren.

#### Legacy geschiedenisgegevens opschonen

Een script om legacy geschiedenisgegevens op te schonen is toegevoegd in Server Pro `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 geeft geen schijfruimte vrij nadat je documenten verwijdert; in plaats daarvan wordt die ruimte hergebruikt voor toekomstige documenten in dezelfde collectie. Na de historiesmigratie wordt er niet meer naar deze collecties geschreven, dus blijft de schijfruimte ongebruikt.

Als je de schijfruimte weer beschikbaar wilt maken, kun je upgraden naar Server Pro 3.5.13 (als je nog de 3.x-release gebruikt) of Server Pro 4.2.5 (als je de 4.x-release gebruikt) en het opschoningsscript opnieuw uitvoeren.

Het opschoningsscript zoals inbegrepen in de nieuwste patchreleases van Server Pro 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 probleemoplossingsadvies 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 faalt (d.w\.z. met een fout beëindigt of een niet-nul aantal mislukte projecten afdrukt), stuur dan de volgende details per e-mail naar ons supportteam [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 details over:

Onderwerp: probleem met migratie van volledige projectgeschiedenis

* Type instantie: CE of Server Pro (verwijder waar van toepassing)
* Installatietype: Overleaf toolkit of `docker-compose.yml` of anders (verwijder waar 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 voor de `history-v1`, `project-history` en `track-changes` services aan de e-mail toe te voegen. Je vindt deze op `/var/log/sharelatex` binnen de `sharelatex` container en exporteer ze als volgt:

```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 je ze toevoegt.

#### Kapotte bestandstrees vinden

De migratie kan mislukken voor projecten met een foutief opgebouwde bestandstree (bijvoorbeeld wanneer bestandsnamen leeg zijn). Je kunt een lijst van deze problemen vinden met 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"
SLECHT PAD: 123456789012345678901234 rootFolder.0.1.2.3
SLECHT PAD: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

Gebruik om de ongeldige paden te herstellen het `fix_malformed_filetree` script, waarbij je het commando één keer uitvoert voor elk slecht 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 legacy geschiedenis

Als er een project is dat is gemigreerd naar volledige projectgeschiedenis maar je wilt terug naar de legacy 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://ayakaleaf-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.
