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

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

## Migrering af fuld projekthistorik

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

Efter opgradering af din instans til Overleaf CE `3.5.13`, vil alle nye projekter som standard bruge Fuld projekthistorik. Eksisterende projekter vil fortsætte med at bruge det gamle historiesystem, indtil de er 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 projekthistorik giver flere forbedringer for brugerne:

* Den holder styr på ændringer i binære filer, hvilket ikke understøttes i det gamle system.
* Der er understøttelse af navngivne versioner.
* Systemet er generelt mere robust, og der er mindre risiko for datatab.

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

### 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 kommando nedenfor)

{% code overflow="wrap" %}

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

{% endcode %}
{% endstep %}

{% step %}

#### Kør migrationsscriptet

{% code overflow="wrap" %}

```bash
# Brugere af 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"

# 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 projekthistorikdata i det nye system, hvilket gør det muligt at forsøge migreringen igen for individuelle projekter, der fejlede ved tidligere forsøg;

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

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

Outputtet bør se sådan ud:

```bash
Migrerede projekter :  1
Samlede projekter   :  51
Resterende projekter:  51
Samlet antal historikposter, der skal migreres: 98
Starter migrering...
Migrerer projekt: 63d29b5772dd80015a81bffe
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }
Migrerer projekt: 63d29c2e72dd80015a81c0a2
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migrering fuldført
==================
Projekter migreret:  51
Projekter fejlet:  0
Færdig.
```

Hvis migreringen er vellykket, får du en exit-kode på `0`, og de sidste linjer angiver ingen fejl:

```bash
Projekter fejlet:  0
Færdig.
```

Du kan åbne adgangen for dine brugere igen (se næste trin). Hvis der er fejl, kan du se fejlfindingsafsnittet nedenfor. Du kan stadig åbne webstedet igen, hvis problemerne ikke bliver løst med det samme, og de umigrerede projekter forbliver i det gamle historiesystem.
{% endstep %}

{% step %}

#### Åbn webstedet igen

Hvis du har valgt at udføre en offline-migrering, skal du åbne webstedet igen. Hvis du stadig er logget ind, skal du:

1. Klik på **Administrator** knap og vælge **Administrer websted**
2. Klik på **Åbn/luk editor** fanen
3. Klik på **Genåbn editor** knappen

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

#### Offline-migrering

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

* Log ind på din Overleaf-instans med en administratorkonto
* Klik på **Administrator** knap og vælge **Administrer websted**
* 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 alle brugere, der er logget ind, blive omdirigeret til vedligeholdelsessiden, og alle nye brugere, der besøger login-siden, vil se vedligeholdelsessiden og **vil ikke** kunne logge ind.

#### Online-migrering

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

* Migreringsprocessen er CPU-intensiv, så du bør overvåge ressourceforbruget, mens scriptet kører.
* Ved 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 UX-oplevelse. Vi anbefaler at starte med standardværdien `--concurrency=1` .
* Du kan stoppe scriptet når som helst. Hvis du starter det igen, genoptages migreringen, hvor du slap. Dette er nyttigt, hvis du foretrækker at køre migreringen i mindre travle timer (f.eks. om natten).

Vores anbefaling er at lukke webstedet og køre migreringen offline i et vedligeholdelsesvindue, når dit projektantal 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 baseret på 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 projekterne 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` samlinger. MongoDB frigør ikke diskplads, når du sletter dokumenter; i stedet genbruger det den plads til fremtidige dokumenter i den samme samling. Intet vil skrive til disse samlinger 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 (mens du stadig bruger 3.x-udgaven) eller Server Pro 4.2.5 (mens du bruger 4.x-udgaven) og køre oprydningsscriptet igen.

Oprydningsscriptet som inkluderet i Server Pro i de seneste patch-udgaver af `3.5.x` og de seneste `4.x.x` dropper samlingerne som sidste trin.

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

### Fejlfinding

Vi vil tilføje råd om fejlfinding 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 støtte CE-kunder, der oplever problemer specifikt relateret til migreringen til fuld projekthistorik.

Hvis migrationsscriptet for fuld projekthistorik fejler (dvs. afsluttes med en fejl eller udskriver et antal fejlede projekter, der er større end nul), 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 oplysninger om:

Emne: Problem med migrering af fuld projekthistorik

* Instanstype: CE eller Server Pro (slet det, der ikke passer)
* Installationstype: Overleaf Toolkit eller `docker-compose.yml` eller andet (slet det, der ikke passer)
* Version: 3.5.x (toolkit: `$ cat config/version`)
* Output fra migrationsscriptet (som bør befinde sig i containeren under `/overleaf/services/web`)
* Migrerede projekter: (i henhold til output fra migrationsscriptet)
* Samlede projekter: (i henhold til output fra migrationsscriptet)
* Resterende projekter: (i henhold til output fra migrationsscriptet)
* Migreringens varighed:
* `bin/doctor` output (ved brug af toolkit)
* Toolkit-version: `$ git rev-parse HEAD` (ved brug af 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 eksportere 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 eventuelle følsomme oplysninger fra logfilerne, før du vedhæfter dem.

#### Find ødelagte filtæer

Migreringen kan fejle for projekter, der har et fejlformet filtæ (for eksempel hvor filnavne 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"
DÅRLIG STIFINJE: 123456789012345678901234 rootFolder.0.1.2.3
DÅRLIG STIFINJE: 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 projekthistorik til gammelt historiesystem

Hvis der er et projekt, der er blevet migreret til fuld projekthistorik, men du ønsker at gå tilbage til det gamle historiesystem, 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://overleaf-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.
