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

# (v3.5.13-migraatio) Koko projektihistorian migraatio

## Täyden projektihistorian migraatio

Se `3.5.x` Community Editionin julkaisu sisältää [Täyden projektihistorian ominaisuuden](https://www.overleaf.com/learn/latex/Using_the_History_feature) joka on jo saatavilla SaaS-tarjonnassamme, [overleaf.com](http://overleaf.com/)

Kun olet päivittänyt instanssisi Overleaf CE:hen `3.5.13`, kaikki uudet projektit käyttävät oletusarvoisesti Täyttä projektihistoriaa. Olemassa olevat projektit jatkavat vanhan Histori-järjestelmän käyttöä, kunnes ne on migroitu.

{% hint style="info" %}
Jos päivität versioon `3.5.13` ja päätät alentaa aiempaan versioon, sinun tulisi palauttaa täydellisestä järjestelmävarmuuskopiosta. Versiossa luotujen projektien historia `3.5.13` ei ole yhteensopiva Overleaf CE:n aiempien versioiden kanssa.
{% endhint %}

Uusi Täysi projektihistoria tuo käyttäjille useita parannuksia:

* Se seuraa muutoksia binääritiedostoissa, mitä vanha järjestelmä ei tue.
* Tunnisteelliset versiot ovat tuettuja.
* Järjestelmä on yleisesti ottaen vankempi, ja tietojen menettämisen riski on pienempi.

Katso [Täyden projektihistorian dokumentaatio](https://www.overleaf.com/learn/latex/Using_the_History_feature) lisätietoja täydestä projektihistoriasta.

### Olemassa olevien projektien migrointi

{% stepper %}
{% step %}

#### Luo varmuuskopio

Luo täydellinen [varmuuskopio](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) instanssistasi yhtenäisellä tilannevedoksella **mongo**, **redis** ja **sharelatex** hakemistoista.
{% endstep %}

{% step %}

#### Päivitä

Päivitä sharelatex/sharelatex-kuvan versio 3.5.13:een.

Toolkit: Käytä `$ bin/upgrade` skriptiä Toolkitin päivittämiseksi uusimpaan versioon ja muokkaa **config/version** versioon 3.5.13.
{% endstep %}

{% step %}

#### Käynnistä instanssi

Ihannetapauksessa haluat estää käyttäjiä pääsemästä instanssiisi migraation aikana, jotta vältät tietojen menetyksen siltä varalta, että sinun täytyy palauttaa varmuuskopiosi. Katso [Offline-migraatio](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) lisätietoja siitä, miten tämä tehdään.
{% endstep %}

{% step %}

#### Odota, kunnes kaikki palvelut ovat käynnissä

Odota, kunnes kaikki palvelut ovat käynnissä (katso komento alla)

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
web sharelatex on käynnissä (api)%
```

{% endcode %}
{% endstep %}

{% step %}

#### Suorita migraatiiskripti

{% code overflow="wrap" %}

```bash
# Overleaf Toolkitin käyttäjät:
$ 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"

# vanhan docker-compose.yml:n käyttäjät:
$ 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` tyhjentää osittain migroidun projektihistorian tiedot uudessa järjestelmässä, mikä mahdollistaa epäonnistuneiden yksittäisten projektien migraation uudelleen yrittämisen aiempien yritysten jälkeen;

`--fix-invalid-characters` korvaa ei-tulostettavat merkit, joita uusi histori-järjestelmä ei tue;

`--convert-large-docs-to-file` muuntaa dokumentit, jotka ylittävät 2 MB:n muokattavan koon rajan, muokkaamattomaksi tiedostoksi)

Tuloksen pitäisi näyttää tältä:

```bash
Migroidut projektit  :  1
Projektit yhteensä     :  51
Jäljellä olevat projektit :  51
Migroitavia historiatietueita yhteensä: 98
Migraatio käynnistyy...
Migroidaan projektia: 63d29b5772dd80015a81bffe
migraatiotulos { upgraded: true, historyType: 'NoneWithoutConversion' }
Migroidaan projektia: 63d29c2e72dd80015a81c0a2
migraatiotulos { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migraatio valmis
==================
Migroidut projektit:  51
Epäonnistuneet projektit:  0
Valmis.
```

Jos migraatio onnistuu, saat poistumiskoodin `0`, ja viimeiset rivit osoittavat, ettei epäonnistumisia ole:

```bash
Epäonnistuneet projektit:  0
Valmis.
```

Voit avata pääsyn käyttäjillesi uudelleen (katso seuraava vaihe). Jos epäonnistumisia on, katso alla oleva vianmääritysluku. Voit silti avata sivuston uudelleen, jos ongelmia ei korjata heti, ja migroimattomat projektit pysyvät vanhassa histori-järjestelmässä.
{% endstep %}

{% step %}

#### Avaa sivusto uudelleen

Jos valitsit suorittaa offline-migraation, sinun täytyy avata sivusto uudelleen. Jos olet edelleen kirjautuneena sisään, sinun täytyy:

1. Napsauta **Ylläpitäjä** painiketta ja valitse **Hallitse sivustoa**
2. Napsauta **Avaa/Sulje editori** välilehti
3. Napsauta **Avaa editori uudelleen** painiketta

Jos olet sulkenut selaimesi, sinun täytyy käynnistää sivusto uudelleen komennolla `$ bin/up`.
{% endstep %}
{% endstepper %}

#### Offline-migraatio

Jotta käyttäjät eivät voi kirjautua sisään samalla kun historiamigraatioskrypti on käynnissä, seuraa näitä vaiheita:

* Kirjaudu Overleaf-instanssiisi ylläpitäjätunnuksella
* Napsauta **Ylläpitäjä** painiketta ja valitse **Hallitse sivustoa**
* Napsauta **Avaa/Sulje editori** välilehti
* Napsauta **Sulje editori** painiketta
* Napsauta **Katkaise kaikkien käyttäjien yhteys** painiketta

Kun tämä on tehty, jos käyttäjiä on kirjautuneena sisään, heidät ohjataan ylläpitosivulle, ja kaikki uudet käyttäjät, jotka vierailevat kirjautumissivulla, näkevät ylläpitosivun ja **ei** voivat kirjautua sisään.

#### Online-migraatio

Migraatiokäsikirjoituksia on mahdollista ajaa samalla kun sovellus on edelleen käynnissä. On muutamia huomioitavia asioita:

* Migraatioprosessi on CPU-intensiivinen, joten sinun tulisi seurata resurssien käyttöä skriptin ollessa käynnissä.
* Suurella `--concurrency` arvolla joidenkin palvelujen tapahtumasilmukka (`track-changes` erityisesti) saattaa kokea jonkin verran estymistä, mikä johtaisi heikentyneeseen käyttökokemukseen. Suosittelemme aloittamaan oletusarvolla `--concurrency=1` arvo.
* Voit pysäyttää skriptin milloin tahansa. Sen käynnistäminen uudelleen jatkaa migraatiota siitä kohdasta, johon jäit. Tämä on hyödyllistä, jos haluat suorittaa migraation vähemmän kiireisinä aikoina (esim. yöllä).

Suosittelemme sulkemaan sivuston ja suorittamaan migraation offline-tilassa huoltokatkon aikana, kun projektien määrä on alle 1000 projektia (`db.projects.count()`). Jos projektien määrä on suuri, voit ajaa skriptin ja seurata sen etenemistä, ja päättää sitten, jatkatko sen ajamista online- vai offline-tilassa oman tilanteesi perusteella.

#### Vanhan historiatiedon siivoaminen

Palvelin Pron lisättiin skripti vanhan historiatiedon siivoamiseen `3.5.6`, `4.0.6` ja `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 %}

Skripti voidaan suorittaa sen jälkeen, kun kaikki projektit on migroitu. Sitä voidaan käyttää myös vapauttamaan tilaa online-migraation aikana.

{% hint style="info" %}
Server Prossa ennen versiota 3.5.13 skripti poistaa sisällön kohdista `docHistory` ja `docHistoryIndex` kokoelmat. MongoDB ei vapauta levytilaa asiakirjojen poistamisen jälkeen, vaan käyttää sen uudelleen tulevia asiakirjoja varten samassa kokoelmassa. Mikään ei kirjoita näihin kokoelmiin enää historiamigraation jälkeen, joten levytila jää käyttämättä.

Jos haluat tehdä levytilasta jälleen käytettävää, voit päivittää Server Prohon 3.5.13 (kun käytössä on edelleen 3.x-julkaisu) tai Server Prohon 4.2.5 (kun käytössä on 4.x-julkaisu) ja suorittaa siivousskriptin uudelleen.

Server Prossa mukana oleva siivousskripti uusimmissa korjausjulkaisuissa `3.5.x` ja uusimmissa `4.x.x` poistavat kokoelmat viimeisenä vaiheena.

Siivousskriptin voi ajaa uudelleen turvallisesti.
{% endhint %}

### Vianmääritys

Lisäämme tähän vianmääritysohjeita. Huomaa, että vaikka tarjoamme normaalisti tukea vain Server Pro -asiakkaille, tämän migraation luonteen vuoksi teemme parhaamme tukeaksemme myös CE-asiakkaita, jotka kohtaavat täyteen projektihistoriaan liittyviä ongelmia.

Jos täyden projektihistorian migraatiokäsikirjoitus epäonnistuu (eli päättyy virheeseen tai tulostaa nollasta poikkeavan määrän epäonnistuneita projekteja), lähetä seuraavat tiedot tukitiimillemme sähköpostitse [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), ja erittele:

Aihe: Täyden projektihistorian migraatio-ongelma

* Instanssityyppi: CE tai Server Pro (poista tarpeeton)
* Asennustyyppi: Overleaf Toolkit tai `docker-compose.yml` tai muu (poista tarpeeton)
* Versio: 3.5.x (toolkit: `$ cat config/version`)
* Migraatiokäsikirjoituksen tuloste (jonka pitäisi sijaita kontainerissa kohdassa `/overleaf/services/web`)
* Migroidut projektit: (migraatiokäsikirjoituksen tulosteen mukaan)
* Projektit yhteensä: (migraatiokäsikirjoituksen tulosteen mukaan)
* Jäljellä olevat projektit: (migraatiokäsikirjoituksen tulosteen mukaan)
* Migraation kesto:
* `bin/doctor` tuloste (kun käytetään Toolkitia)
* Toolkitin versio: `$ git rev-parse HEAD` (kun käytetään Toolkitiä)

Harkitse liittämistä sähköpostiin myös `history-v1`, `project-history` ja `track-changes` palveluiden lokitiedostot. Löydät ne kohdasta `/var/log/sharelatex` kontainerin `sharelatex` sisällä ja vie ne näin:

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

Poista lokitiedostoista kaikki arkaluonteiset tiedot ennen kuin liität ne.

#### Rikkinäisten tiedostopuiden etsiminen

Migraatio voi epäonnistua projekteissa, joissa on virheellisesti muotoiltu tiedostopuu (esimerkiksi, kun tiedostonimet ovat tyhjiä). Löydät luettelon näistä ongelmista käyttämällä `find_malformed_filetrees` skriptiä, joka tarkistaa kaikki tietokannan projektit:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/find_malformed_filetrees.js"
VIRHEELLINEN POLKU: 123456789012345678901234 rootFolder.0.1.2.3
VIRHEELLINEN POLKU: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

Korjataksesi virheelliset polut, käytä `fix_malformed_filetree` skriptiä, suorittaen komennon kerran jokaista virheellistä polkua kohden:

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

#### Projektien alentaminen täyden projektihistorian järjestelmästä vanhaan historiaan

Jos on projekti, joka on migroitu täyteen projektihistoriaan, mutta haluat palata vanhaan historiaan, käytä `downgrade_project` skriptiä seuraavasti:

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