> 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/on-premises-no/stotte/support-guides/full-project-history-migration.md).

# (Migrering fra v3.5.13) Migrering av full prosjektlogg

## Migrering av full prosjekthistorikk

Den `3.5.x` utgivelsen av Community Edition inkluderer [funksjonen Full prosjekthistorikk](https://www.overleaf.com/learn/latex/Using_the_History_feature) som allerede er tilgjengelig i vårt SaaS-tilbud, [overleaf.com](http://overleaf.com/)

Etter at du har oppgradert instansen din til Overleaf CE `3.5.13`, vil alle nye prosjekter bruke Full prosjekthistorikk som standard. Eksisterende prosjekter vil fortsette å bruke det gamle historiesystemet, inntil de er migrert.

{% hint style="info" %}
Hvis du oppgraderer til `3.5.13` og bestemmer deg for å nedgradere til en tidligere versjon, bør du gjenopprette fra en fullstendig systemsikkerhetskopi. Historikken til prosjekter opprettet i `3.5.13` er ikke kompatibel med tidligere versjoner av Overleaf CE.
{% endhint %}

Den nye Full prosjekthistorikk gir flere forbedringer for brukerne:

* Den sporer endringer i binærfiler, noe som ikke støttes i det gamle systemet.
* Det er støtte for versjoner med etiketter.
* Systemet er generelt mer robust, og det er mindre sjanse for datatap.

Se [dokumentasjonen for Full prosjekthistorikk](https://www.overleaf.com/learn/latex/Using_the_History_feature) for mer informasjon om full prosjekthistorikk.

### Migrering av eksisterende prosjekter

{% stepper %}
{% step %}

#### Opprett en sikkerhetskopi

Opprett en fullstendig [sikkerhetskopi](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) av instansen din med et konsistent øyeblikksbilde av **mongo**, **redis** og **sharelatex** katalogene.
{% endstep %}

{% step %}

#### Oppdater

Oppdater versjonen av sharelatex/sharelatex-imaget til 3.5.13.

Toolkit: Bruk `$ bin/upgrade` skriptet for å oppgradere toolkit til den nyeste versjonen og rediger **config/version** til 3.5.13.
{% endstep %}

{% step %}

#### Start instansen

Ideelt sett bør du forhindre brukere i å få tilgang til instansen din mens migreringen pågår, for å unngå datatap hvis du må gjenopprette sikkerhetskopien. Se [frakoblet migrering](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) for mer informasjon om hvordan du gjør dette.
{% endstep %}

{% step %}

#### Vent til alle tjenester er oppe og kjører

Vent til alle tjenester er oppe og kjører (se kommandoen nedenfor)

{% code overflow="wrap" %}

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

{% endcode %}
{% endstep %}

{% step %}

#### Kjør migreringsskriptet

{% code overflow="wrap" %}

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

# brukere av gammel 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 bort delvis migrerte data for prosjekthistorikk i det nye systemet; dette gjør det mulig å prøve migreringen på nytt for enkeltprosjekter som mislyktes i tidligere forsøk;

`--fix-invalid-characters` erstatter ikke-utskrivbare tegn som ikke støttes av det nye historiesystemet;

`--convert-large-docs-to-file` konverterer dokumenter som er over grensen på 2 MB for redigerbar størrelse til en ikke-redigerbar fil)

Utdataene skal se slik ut:

```bash
Migrerte prosjekter  :  1
Totalt antall prosjekter     :  51
Gjenværende prosjekter :  51
Totalt antall historikkposter som skal migreres: 98
Starter migrering...
Migrerer prosjekt: 63d29b5772dd80015a81bffe
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }
Migrerer prosjekt: 63d29c2e72dd80015a81c0a2
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migrering fullført
==================
Prosjekter migrert:  51
Prosjekter som mislyktes:  0
Ferdig.
```

Hvis migreringen er vellykket, får du en avslutningskode på `0`, og de siste linjene indikerer ingen feil:

```bash
Prosjekter som mislyktes:  0
Ferdig.
```

Du kan åpne tilgangen for brukerne dine igjen (se neste trinn). Hvis det er feil, se feilsøkingsdelen nedenfor. Du kan fortsatt åpne nettstedet igjen hvis problemene ikke blir løst med en gang, og prosjektene som ikke ble migrert vil forbli i det gamle historiesystemet.
{% endstep %}

{% step %}

#### Åpne nettstedet igjen

Hvis du valgte å utføre en frakoblet migrering, må du åpne nettstedet igjen. Hvis du fortsatt er innlogget, må du:

1. Klikk på **Administrator** knappen og velg **Administrer nettstedet**
2. Klikk på **Åpne/lukk redigeringsprogrammet** fanen
3. Klikk på **Åpne redigeringsprogrammet på nytt** knappen

Hvis du har lukket nettleseren, må du starte nettstedet på nytt med `$ bin/up`.
{% endstep %}
{% endstepper %}

#### frakoblet migrering

For å hindre brukere i å kunne logge inn mens skriptet for historiesmigrering kjører, følg disse trinnene:

* Logg inn på Overleaf-instansen din med en administratorkonto
* Klikk på **Administrator** knappen og velg **Administrer nettstedet**
* Klikk på **Åpne/lukk redigeringsprogrammet** fanen
* Klikk på **Lukk redigeringsprogrammet** knappen
* Klikk på **Koble fra alle brukere** knappen

Når dette er gjort, vil alle påloggede brukere bli videresendt til vedlikeholdssiden, og nye brukere som besøker innloggingssiden vil se vedlikeholdssiden og **ikke** kunne logge inn.

#### Online migrering

Det er mulig å kjøre migreringsskriptene mens applikasjonen fortsatt kjører. Det er noen hensyn som må tas:

* Migreringsprosessen er CPU-intensiv, så du bør overvåke ressursbruken mens skriptet kjører.
* Med en høy `--concurrency` verdi kan hendelsessløyfen i noen tjenester (`track-changes` særlig) oppleve noe blokkering, noe som vil føre til en forringet brukeropplevelse. Vi anbefaler å starte med standard `--concurrency=1` verdi.
* Du kan stoppe skriptet når som helst. Starter du det igjen, vil migreringen fortsette der du slapp. Dette er nyttig hvis du foretrekker å kjøre migreringen i mindre travle timer (f.eks. om natten).

Vår anbefaling er å stenge nettstedet og kjøre migreringen frakoblet i et vedlikeholdsvindu når antallet prosjekter er under 1000 prosjekter (`db.projects.count()`). Hvis antallet prosjekter er stort, kan du kjøre skriptet og overvåke fremdriften, og deretter bestemme om du vil fortsette å kjøre det online eller offline basert på din spesifikke situasjon.

#### Rydd opp i gamle historikkdata

Et skript for å rydde opp i gamle historikkdata ble lagt til 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 %}

Skriptet kan kjøres etter at alle prosjektene er migrert. Det kan også brukes for å frigjøre litt plass mens en online migrering pågår.

{% hint style="info" %}
I Server Pro før versjon 3.5.13 sletter skriptet innholdet i `docHistory` og `docHistoryIndex` samlingene. MongoDB frigjør ikke diskplass etter at du sletter dokumenter; i stedet gjenbruker den plassen for fremtidige dokumenter i den samme samlingen. Ingenting vil skrive til disse samlingene igjen etter historiesmigreringen, så diskplassen vil forbli ubrukt.

Hvis du vil gjøre diskplassen tilgjengelig igjen, kan du oppgradere til Server Pro 3.5.13 (mens du fortsatt bruker 3.x-utgaven) eller Server Pro 4.2.5 (mens du bruker 4.x-utgaven) og kjøre opprydningsskriptet på nytt.

Opprydningsskriptet, slik det er inkludert i de nyeste patch-utgivelsene av Server Pro `3.5.x` og de nyeste `4.x.x` slipper samlingene som siste trinn.

Det er trygt å kjøre opprydningsskriptet på nytt.
{% endhint %}

### Feilsøking

Vi vil legge til feilsøkingsråd her. Vær oppmerksom på at selv om vi normalt bare tilbyr support til Server Pro-kunder, vil vi på grunn av denne migreringens natur også gjøre vårt beste for å støtte CE-kunder som opplever problemer som er spesifikke for migrering av full prosjekthistorikk.

Hvis skriptet for migrering av full prosjekthistorikk mislykkes (dvs. avsluttes med en feil eller skriver ut et ikke-null antall mislykkede prosjekter), vennligst send følgende detaljer til supportteamet vårt på e-post [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 detaljer om:

Emne: Problem med migrering av full prosjekthistorikk

* Instanstype: CE eller Server Pro (slett det som ikke passer)
* Installasjonstype: Overleaf toolkit eller `docker-compose.yml` eller annet (slett det som ikke passer)
* Versjon: 3.5.x (toolkit: `$ cat config/version`)
* Utdata fra migreringsskriptet (som skal ligge i containeren under `/overleaf/services/web`)
* Migrerte prosjekter: (i henhold til utdata fra migreringsskriptet)
* Totalt antall prosjekter: (i henhold til utdata fra migreringsskriptet)
* Gjenværende prosjekter: (i henhold til utdata fra migreringsskriptet)
* Varighet for migreringen:
* `bin/doctor` utdata (når toolkit brukes)
* Toolkit-versjon: `$ git rev-parse HEAD` (når toolkit brukes)

Vurder å legge ved loggfilene for `history-v1`, `project-history` og `track-changes` tjenestene i e-posten. Du finner disse på `/var/log/sharelatex` inne i `sharelatex` containeren og eksporter dem slik:

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

Vennligst sladd all sensitiv informasjon fra loggfilene før du legger dem ved.

#### Finne ødelagte filtrær

Migreringen kan mislykkes for prosjekter som har et feilformatert filtre (for eksempel der filnavnene er tomme). Du kan finne en liste over disse problemene ved å bruke `find_malformed_filetrees` skriptet som sjekker alle prosjektene 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 STI: 123456789012345678901234 rootFolder.0.1.2.3
DÅRLIG STI: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

For å rette de ugyldige stiene, bruk `fix_malformed_filetree` skriptet, og kjør kommandoen én gang for hver dårlige 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 av prosjekter fra full prosjekthistorikk til gammel historikk

Hvis det finnes et prosjekt som har blitt migrert til full prosjekthistorikk, men du vil gå tilbake til den gamle historikken, bruk `downgrade_project` skriptet 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/on-premises-no/stotte/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.
