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

# (Migrering v3.5.13) Migrering av fullständig projekthistorik

## Migrering av fullständig projekthistorik

Fältet `3.5.x` utgåvan av Community Edition inkluderar [funktionen Fullständig projekthistorik](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 Fullständig projekthistorik som standard. Befintliga projekt kommer att fortsätta använda det äldre historiksystemet tills de har migrerats.

{% 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 systemsäkerhetskopia. Historiken för projekt som skapats i `3.5.13` är inte kompatibel med tidigare versioner av Overleaf CE.
{% endhint %}

Den nya Fullständig projekthistorik medför flera förbättringar för användarna:

* Den spårar ändringar i binära filer, vilket inte stöds i det äldre 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 Fullständig projekthistorik](https://www.overleaf.com/learn/latex/Using_the_History_feature) för mer information om fullständig projekthistorik.

### Migrering av 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-avbilden till 3.5.13.

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

{% step %}

#### Starta instansen

Idealt sett 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 uppe och kör

Vänta tills alla tjänster är uppe och kör (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 den äldre 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 migreringen igen för enskilda projekt 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 gränsen för redigerbar storlek på 2 MB till en icke-redigerbar fil)

Utdata 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 migreringen...
Migrerar projekt: 63d29b5772dd80015a81bffe
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }
Migrerar projekt: 63d29c2e72dd80015a81c0a2
migreringsresultat { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migreringen slutförd
==================
Projekt migrerade:  51
Projekt misslyckades:  0
Klart.
```

Om migreringen lyckas får du en avslutningskod på `0`, och de sista raderna visar att inga misslyckanden inträffade:

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

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

{% step %}

#### Öppna webbplatsen igen

Om du valde att utföra en offline-migrering behöver 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å **Återöppna redigeraren** knappen

Om du har stängt din webbläsare behöver du starta om webbplatsen med `$ bin/up`.
{% endstep %}
{% endstepper %}

#### Offline-migrering

För att förhindra att användare kan logga in medan migreringsskriptet för historiken körs, följ dessa steg:

* 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 från alla användare** knappen

När detta har gjorts kommer eventuella inloggade användare att omdirigeras till underhållssidan, och nya användare som besöker inloggningssidan kommer att se underhållssidan och **kommer inte att** 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, 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 i `--concurrency=1` -värdet rekommenderas.
* 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 intensiva 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 ditt projektantal ä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 bort äldre historikdata

Ett skript för att rensa äldre historikdata lades 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 visst 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 i stället 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 (om du fortfarande använder 3.x-utgåvan) eller Server Pro 4.2.5 (om 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` släpper samlingarna som sista steg.

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

### Felsökning

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

Om migreringsskriptet för 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 uppgifter om:

Ämne: Problem med migrering av fullständig projekthistorik

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

Ö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 all 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 där filnamnen är tomma). Du kan hitta en lista över dessa problem med `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 rätta till 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 äldre historik

Om det finns ett projekt som har migrerats till fullständig projekthistorik men du vill gå tillbaka till den äldre 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://ayakaleaf-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.
