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

# (v3.5.13-migrering) Migrering av hela projekthistoriken

## Migrering av fullständig projekthistorik

Den `3.5.x` utgåva av Community Edition inkluderar [funktionen Full Project History](https://www.overleaf.com/learn/latex/Using_the_History_feature) som redan finns tillgänglig i vårt SaaS-erbjudande, [overleaf.com](http://overleaf.com/)

Efter att du har uppgraderat din instans till Overleaf CE `3.5.13`, kommer alla nya projekt att använda Full Project History som standard. Befintliga projekt kommer att fortsätta använda det äldre History-systemet tills de migreras.

{% hint style="info" %}
Om du uppgraderar till `3.5.13` och bestämmer dig för att nedgradera till en tidigare version bör du återställa från en fullständig systembackup. Historiken för projekt som skapats i `3.5.13` är inte kompatibel med tidigare versioner av Overleaf CE.
{% endhint %}

Den nya Full Project History innebär flera förbättringar för användare:

* Den spårar ändringar i binära filer, vilket inte stöds i det gamla systemet.
* Det finns stöd för märkta versioner.
* Systemet är generellt mer robust, och risken för dataförlust är mindre.

Se [dokumentationen för Full Project History](https://www.overleaf.com/learn/latex/Using_the_History_feature) för mer information om fullständig projekthistorik.

### Migrera befintliga projekt

{% stepper %}
{% step %}

#### Skapa en säkerhetskopia

Skapa en fullständig [säkerhetskopia](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) av din instans med en konsekvent ögonblicksbild av **mongo**, **redis** och **sharelatex** katalogerna.
{% endstep %}

{% step %}

#### Uppdatera

Uppdatera versionen av sharelatex/sharelatex-bilden till 3.5.13.

Toolkit: Använd `$ bin/upgrade` skriptet för att uppgradera verktygssatsen till den senaste versionen och redigera **config/version** till 3.5.13.
{% endstep %}

{% step %}

#### Starta instansen

Helst vill du förhindra att användare får åtkomst till din instans medan migreringen pågår, för att undvika dataförlust ifall du behöver återställa din säkerhetskopia. Se [Offline-migrering](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) för mer information om hur du gör detta.
{% endstep %}

{% step %}

#### Vänta tills alla tjänster är igång och körs

Vänta tills alla tjänster är igång och körs (se kommandot nedan)

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
web sharelatex är igång (api)%
```

{% endcode %}
{% endstep %}

{% step %}

#### Kör migreringsskriptet

{% code overflow="wrap" %}

```bash
# Användare av 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"

# användare av 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` raderar delvis migrerade data för projekthistorik i det nya systemet, vilket gör det möjligt att försöka migrera enskilda projekt igen som misslyckades vid tidigare försök;

`--fix-invalid-characters` ersätter icke-utskrivbara tecken som inte stöds av det nya historiksystemet;

`--convert-large-docs-to-file` konverterar dokument som är över den redigerbara storleksgränsen på 2 MB till en icke-redigerbar fil)

Utdatan bör se ut så här:

```bash
Migrerade projekt  :  1
Totalt antal projekt     :  51
Återstående projekt :  51
Totalt antal historikposter att migrera: 98
Startar migrering...
Migrerar projekt: 63d29b5772dd80015a81bffe
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }
Migrerar projekt: 63d29c2e72dd80015a81c0a2
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migrering klar
==================
Projekt migrerade:  51
Projekt misslyckades:  0
Klart.
```

Om migreringen lyckas får du en utgångskod på `0`, och de sista raderna indikerar inga fel:

```bash
Projekt misslyckades:  0
Klart.
```

Du kan öppna åtkomsten för dina användare igen (se nästa steg). Om det finns några fel, se felsökningsavsnittet nedan. Du kan fortfarande öppna webbplatsen igen om problemen inte åtgärdas direkt, och de omigrerade projekten kommer att förbli i det gamla historiksystemet.
{% endstep %}

{% step %}

#### Öppna webbplatsen igen

Om du valde att utföra en offline-migrering måste du öppna webbplatsen igen. Om du fortfarande är inloggad behöver du:

1. Klicka på **Admin** knappen och välj **Hantera webbplats**
2. Klicka på **Öppna/stäng redigeraren** fliken
3. Klicka på **Öppna redigeraren igen** knappen

Om du har stängt webbläsaren måste du starta om webbplatsen med `$ bin/up`.
{% endstep %}
{% endstepper %}

#### Offline-migrering

Följ dessa steg för att förhindra att användare kan logga in medan skriptet för historikmigrering körs:

* Logga in på din Overleaf-instans med ett administratörskonto
* Klicka på **Admin** knappen och välj **Hantera webbplats**
* Klicka på **Öppna/stäng redigeraren** fliken
* Klicka på **Stäng redigeraren** knappen
* Klicka på **Koppla bort alla användare** knappen

När detta har gjorts kommer alla inloggade användare att omdirigeras till underhållssidan, och nya användare som besöker inloggningssidan kommer att se underhållssidan och **kommer inte** kunna logga in.

#### Online-migrering

Det är möjligt att köra migreringsskripten medan applikationen fortfarande körs. Det finns några saker att ta hänsyn till:

* Migreringsprocessen är CPU-intensiv, så du bör övervaka resursanvändningen medan skriptet körs.
* Med ett högt `--concurrency` -värde kan händelseloopen i vissa tjänster (`track-changes` särskilt) uppleva viss blockering, vilket skulle leda till en försämrad användarupplevelse. Vi rekommenderar att börja med standardvärdet `--concurrency=1` -värdet.
* Du kan stoppa skriptet när som helst. Om du startar det igen återupptas migreringen där du slutade. Detta är användbart om du föredrar att köra migreringen under mindre belastade timmar (t.ex. på natten).

Vår rekommendation är att stänga webbplatsen och köra migreringen offline i ett underhållsfönster när antalet projekt är mindre än 1000 projekt (`db.projects.count()`). Om antalet projekt är stort kan du köra skriptet och övervaka dess förlopp, och sedan avgöra om du ska fortsätta köra det online eller offline beroende på ditt specifika fall.

#### Rensa gammal historikdata

Ett skript för att rensa gammal historikdata har lagts till i Server Pro `3.5.6`, `4.0.6` och `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 köras efter att alla projekt har migrerats. Det kan också användas för att frigöra lite utrymme under en online-migrering.

{% hint style="info" %}
I Server Pro före version 3.5.13 tar skriptet bort innehållet i `docHistory` och `docHistoryIndex` samlingarna. MongoDB frigör inte diskutrymme efter att du har tagit bort dokument, utan återanvänder istället det utrymmet för framtida dokument i samma samling. Ingenting kommer att skriva till dessa samlingar igen efter historikmigreringen, så diskutrymmet kommer att förbli oanvänt.

Om du vill göra diskutrymmet tillgängligt igen kan du uppgradera till Server Pro 3.5.13 (när du fortfarande använder 3.x-utgåvan) eller Server Pro 4.2.5 (när du använder 4.x-utgåvan) och köra rensningsskriptet igen.

Rensningsskriptet som ingår i Server Pro i de senaste patchutgåvorna av `3.5.x` och senaste `4.x.x` tar bort samlingarna som sista steg.

Det är säkert att köra rensningsskriptet igen.
{% endhint %}

### Felsökning

Vi kommer att lägga till felsökningsråd här. Observera att även om vi normalt bara erbjuder support till Server Pro-kunder, kommer vi med tanke på denna migrerings natur också att göra vårt bästa för att stödja CE-kunder som upplever problem specifika för migreringen av fullständig projekthistorik.

Om skriptet för migrering av fullständig projekthistorik misslyckas (dvs. avslutas med ett fel eller skriver ut ett antal misslyckade projekt som inte är noll), skicka följande detaljer till vårt supportteam via 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 följande detaljer:

Ämne: Problem med migrering av fullständig projekthistorik

* Instanstyp: CE eller Server Pro (ta bort det som inte är tillämpligt)
* Installationstyp: Overleaf Toolkit eller `docker-compose.yml` eller annat (ta bort det som inte är tillämpligt)
* Version: 3.5.x (toolkit: `$ cat config/version`)
* Utdatan från migreringsskriptet (som bör finnas i containern under `/overleaf/services/web`)
* Migrerade projekt: (enligt migreringsskriptets utdata)
* Totalt antal projekt: (enligt migreringsskriptets utdata)
* Återstående projekt: (enligt migreringsskriptets utdata)
* Migreringens varaktighet:
* `bin/doctor` utdata (när du använder Toolkit)
* Toolkit-version: `$ git rev-parse HEAD` (när du använder Toolkit)

Överväg att bifoga loggfilerna för `history-v1`, `project-history` och `track-changes` tjänsterna till e-postmeddelandet. Du hittar dem på `/var/log/sharelatex` i `sharelatex` containern och exportera dem så här:

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

Maskera känslig information i loggfilerna innan du bifogar dem.

#### Hitta trasiga filträd

Migreringen kan misslyckas för projekt som har ett felaktigt filträd (till exempel när filnamn är tomma). Du kan hitta en lista över dessa problem med hjälp av `find_malformed_filetrees` skriptet som kontrollerar alla projekt i databasen:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/find_malformed_filetrees.js"
OGILTIG SÖKVÄG: 123456789012345678901234 rootFolder.0.1.2.3
OGILTIG SÖKVÄG: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

För att åtgärda de ogiltiga sökvägarna, använd `fix_malformed_filetree` skriptet och kör kommandot en gång för varje ogiltig sökväg:

{% 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 projekt från fullständig projekthistorik till gammal historik

Om det finns ett projekt som har migrerats till fullständig projekthistorik men du vill gå tillbaka till den gamla historiken, använd `downgrade_project` skriptet enligt följande:

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