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

# (v3.5.13-migrering) Migrering af fuld projekthistorik

## Migration af fuld projekt-historik

Det `3.5.x` udgivelsen af Community Edition inkluderer [funktionen Fuld projekt-historik](https://www.overleaf.com/learn/latex/Using_the_History_feature) som allerede er tilgængelig i vores SaaS-tilbud, [overleaf.com](http://overleaf.com/)

Når du har opgraderet din instans til Overleaf CE `3.5.13`, vil alle nye projekter som standard bruge Fuld projekt-historik. Eksisterende projekter vil fortsætte med at bruge det gamle historiksystem, indtil de bliver migreret.

{% hint style="info" %}
Hvis du opgraderer til `3.5.13` og beslutter at nedgradere til en tidligere version, bør du gendanne fra en fuld systemsikkerhedskopi. Historikken for projekter oprettet i `3.5.13` er ikke kompatibel med tidligere versioner af Overleaf CE.
{% endhint %}

Den nye Fuld projekt-historik giver brugerne flere forbedringer:

* Den sporer ændringer i binære filer, hvilket ikke understøttes i det gamle system.
* Der er understøttelse af versionsmærkater.
* Systemet er generelt mere robust, og der er mindre risiko for datatab.

Se [dokumentationen for Fuld projekt-historik](https://www.overleaf.com/learn/latex/Using_the_History_feature) for mere information om fuld projekt-historik.

### Migrering af eksisterende projekter

{% stepper %}
{% step %}

#### Opret en sikkerhedskopi

Opret en fuld [sikkerhedskopi](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) af din instans med et konsistent snapshot af **mongo**, **redis** og **sharelatex** mapperne.
{% endstep %}

{% step %}

#### Opdater

Opdater versionen af sharelatex/sharelatex-image til 3.5.13.

Toolkit: Brug `$ bin/upgrade` scriptet til at opgradere toolkit til den nyeste version og rediger **config/version** til 3.5.13.
{% endstep %}

{% step %}

#### Start instansen

Ideelt set bør du forhindre brugere i at få adgang til din instans, mens migreringen finder sted, for at undgå datatab, hvis du bliver nødt til at gendanne din sikkerhedskopi. Se [offline migrering](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) for mere information om, hvordan du gør dette.
{% endstep %}

{% step %}

#### Vent, indtil alle tjenester er oppe og kører

Vent, indtil alle tjenester er oppe og kører (se kommandoen nedenfor)

{% code overflow="wrap" %}

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

{% endcode %}
{% endstep %}

{% step %}

#### Kør migreringsscriptet

{% code overflow="wrap" %}

```bash
# Overleaf Toolkit-brugere:
$ 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"

# brugere af den gamle 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` rydder delvist migrerede projekt-historikdata i det nye system; dette gør det muligt at prøve migreringen igen for enkeltprojekter, der fejlede i tidligere forsøg;

`--fix-invalid-characters` erstatter ikke-udskrivbare tegn, som ikke understøttes af det nye historiksystem;

`--convert-large-docs-to-file` konverterer dokumenter, der ligger over tærsklen på 2 MB for redigerbar størrelse, til en ikke-redigerbar fil)

Outputtet bør se sådan ud:

```bash
Migrated Projects  :  1
Total Projects     :  51
Remaining Projects :  51
Samlet antal historikposter til migrering: 98
Starter migrering...
Migrating project: 63d29b5772dd80015a81bffe
migration result { upgraded: true, historyType: 'NoneWithoutConversion' }
Migrating project: 63d29c2e72dd80015a81c0a2
migration result { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migrering fuldført
==================
Projects migrated:  51
Projects failed:  0
Færdig.
```

Hvis migreringen lykkes, får du en exitkode på `0`, og de sidste linjer vil angive, at der ikke var nogen fejl:

```bash
Projects failed:  0
Færdig.
```

Du kan åbne adgangen igen for dine brugere (se næste trin). Hvis der er fejl, så se afsnittet om fejlfinding nedenfor. Du kan stadig åbne siden igen, hvis problemerne ikke straks bliver løst, og de umigrerede projekter vil forblive i det gamle historiksystem.
{% endstep %}

{% step %}

#### Genåbn siden

Hvis du havde valgt at udføre en offline migrering, skal du genåbne siden. Hvis du stadig er logget ind, skal du:

1. Klik på **Admin** knappen og vælge **Administrer site**
2. Klik på **Åbn/Luk editor** fanen
3. Klik på **Genåbn editor** knappen

Hvis du har lukket din browser, skal du genstarte siden med `$ bin/up`.
{% endstep %}
{% endstepper %}

#### offline migrering

For at forhindre brugere i at kunne logge ind, mens historikmigreringsscriptet kører, skal du følge disse trin:

* Log ind på din Overleaf-instans med en administratorkonto
* Klik på **Admin** knappen og vælge **Administrer site**
* Klik på **Åbn/Luk editor** fanen
* Klik på **Luk editor** knappen
* Klik på **Afbryd forbindelsen for alle brugere** knappen

Når dette er gjort, vil eventuelle brugere, der er logget ind, blive omdirigeret til vedligeholdelsessiden, og nye brugere, der besøger login-siden, vil se vedligeholdelsessiden og **vil ikke** kunne logge ind.

#### Online migrering

Det er muligt at køre migreringsscripts, mens applikationen stadig kører. Der er nogle forhold, du skal tage højde for:

* Migreringsprocessen er CPU-krævende, så du bør overvåge ressourceforbruget, mens scriptet kører.
* Med en høj `--concurrency` værdi kan event loopet i nogle tjenester (`track-changes` især) opleve noget blokering, hvilket vil føre til en forringet brugeroplevelse. Vi anbefaler at starte med standard `--concurrency=1` værdi.
* Du kan stoppe scriptet når som helst. Hvis du starter det igen, genoptages migreringen, hvor du slap. Det er nyttigt, hvis du foretrækker at køre migreringen på mindre travle tidspunkter (f.eks. om natten).

Vores anbefaling er at lukke siden og køre migreringen offline i et vedligeholdelsesvindue, når antallet af dine projekter er under 1000 projekter (`db.projects.count()`). Hvis antallet af projekter er stort, kan du køre scriptet og overvåge dets fremdrift og derefter beslutte, om du vil fortsætte med at køre det online eller offline, afhængigt af din konkrete situation.

#### Ryd op i gamle historikdata

Et script til oprydning af gamle historikdata blev tilføjet i Server Pro `3.5.6`, `4.0.6` og `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 %}

Scriptet kan køres, efter at alle projekter er blevet migreret. Det kan også bruges til at frigøre noget plads under en online migrering.

{% hint style="info" %}
I Server Pro før version 3.5.13 sletter scriptet indholdet af `docHistory` og `docHistoryIndex` collections. MongoDB frigiver ikke diskplads, når du sletter dokumenter; i stedet genbruger den den plads til fremtidige dokumenter i den samme collection. Intet vil skrive til disse collections igen efter historikmigreringen, så diskpladsen forbliver ubrugt.

Hvis du vil gøre diskpladsen tilgængelig igen, kan du opgradere til Server Pro 3.5.13 (når du stadig bruger 3.x-udgivelsen) eller Server Pro 4.2.5 (når du bruger 4.x-udgivelsen) og køre oprydningsscriptet igen.

Oprydningsscriptet, som følger med i Server Pro, i de seneste patch-udgivelser af `3.5.x` og seneste `4.x.x` dropper collections som det sidste trin.

Det er sikkert at køre oprydningsscriptet igen.
{% endhint %}

### Fejlfinding

Vi vil tilføje fejlfindingråd her. Bemærk, at selvom vi normalt kun tilbyder support til Server Pro-kunder, vil vi, på grund af denne migrerings karakter, også gøre vores bedste for at hjælpe CE-kunder, der oplever problemer, som er specifikke for migreringen til fuld projekt-historik.

Hvis migreringsscriptet til fuld projekt-historik fejler (dvs. afslutter med en fejl eller udskriver et ikke-nul antal mislykkede projekter), så send venligst følgende oplysninger til vores supportteam via e-mail [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), med følgende detaljer:

Emne: Problem ved migrering af fuld projekt-historik

* Instanstype: CE eller Server Pro (slet det, der ikke er relevant)
* Installationstype: Overleaf toolkit eller `docker-compose.yml` eller andet (slet det, der ikke er relevant)
* Version: 3.5.x (toolkit: `$ cat config/version`)
* Output fra migreringsscriptet (som bør være placeret i containeren under `/overleaf/services/web`)
* Migrerede projekter: (som angivet i outputtet fra migreringsscriptet)
* Samlet antal projekter: (som angivet i outputtet fra migreringsscriptet)
* Resterende projekter: (som angivet i outputtet fra migreringsscriptet)
* Varighed af migreringen:
* `bin/doctor` output (når du bruger toolkit)
* Toolkit-version: `$ git rev-parse HEAD` (når du bruger Toolkit)

Overvej at vedhæfte logfilerne for `history-v1`, `project-history` og `track-changes` tjenesterne til e-mailen. Du kan finde dem på `/var/log/sharelatex` inde i `sharelatex` containeren og eksportér dem sådan her:

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

Fjern venligst følsomme oplysninger fra logfilerne, før du vedhæfter dem.

#### Find brudte filtræer

Migreringen kan fejle for projekter, der har et misdannet filtræ (for eksempel hvor filnavnene er tomme). Du kan finde en liste over disse problemer ved hjælp af `find_malformed_filetrees` scriptet, som kontrollerer alle projekter i databasen:

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

For at rette de ugyldige stier skal du bruge `fix_malformed_filetree` scriptet og køre kommandoen én gang for hver dårlig sti:

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

#### Nedgradering af projekter fra fuld projekt-historik til gammel historik

Hvis der er et projekt, der er blevet migreret til fuld projekt-historik, men du ønsker at gå tilbage til den gamle historik, skal du bruge `downgrade_project` scriptet som følger:

{% 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/da/support/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.
