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

# (v3.5.13-migraatio) Koko projektihistorian migraatio

## Täyden projektihistorian siirto

Kentän `3.5.x` Community Edition -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 Historia-järjestelmän käyttöä, kunnes ne on siirretty.

{% hint style="info" %}
Jos päivität versioon `3.5.13` ja päätät palata aiempaan versioon, sinun tulisi palauttaa koko järjestelmän 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 binaaritiedostojen muutoksia, mitä vanha järjestelmä ei tue.
* Nimetyt versiot ovat tuettuja.
* Järjestelmä on yleisesti ottaen vankempi, ja tietojen katoamisen 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 siirtäminen

{% stepper %}
{% step %}

#### Luo varmuuskopio

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

{% step %}

#### Päivitä

Päivitä sharelatex/sharelatex-kuvan versio arvoon 3.5.13.

Toolkit: Käytä `$ bin/upgrade` komentosarjaa työkalupaketin päivittämiseksi uusimpaan versioon ja muokkaa **config/version** arvoksi 3.5.13.
{% endstep %}

{% step %}

#### Käynnistä instanssi

Ihannetapauksessa haluat estää käyttäjiä pääsemästä instanssiisi siirron aikana, jotta vältät tietojen menetyksen, jos joudut palauttamaan varmuuskopiosi. Katso [Siirto offline-tilassa](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) lisätietoja tämän tekemisestä.
{% endstep %}

{% step %}

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

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

{% code overflow="wrap" %}

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

{% endcode %}
{% endstep %}

{% step %}

#### Suorita siirtoskripti

{% 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 siirretyn projektihistorian tiedot uudessa järjestelmässä; tämä mahdollistaa siirron yrittämisen uudelleen yksittäisille projekteille, jotka epäonnistuivat aiemmilla yrityksillä;

`--fix-invalid-characters` korvaa tulostumattomat merkit, joita uusi historiajärjestelmä ei tue;

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

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

```bash
Siirretyt projektit  :  1
Projektit yhteensä     :  51
Jäljellä olevat projektit :  51
Siirrettäviä historiatietueita yhteensä: 98
Siirto käynnistyy...
Siirretään projektia: 63d29b5772dd80015a81bffe
siirron tulos { upgraded: true, historyType: 'NoneWithoutConversion' }
Siirretään projektia: 63d29c2e72dd80015a81c0a2
siirron tulos { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Siirto valmis
==================
Projekteja siirretty:  51
Epäonnistuneita projekteja:  0
Valmis.
```

Jos siirto onnistuu, saat poistumiskoodiksi `0`, ja viimeisillä riveillä näkyy, ettei epäonnistumisia ole:

```bash
Epäonnistuneita projekteja:  0
Valmis.
```

Voit avata pääsyn käyttäjillesi uudelleen (katso seuraava vaihe). Jos epäonnistumisia on, katso alla oleva vianmääritysosio. Voit silti avata sivuston uudelleen, vaikka ongelmia ei ratkaistaisi heti, ja siirtämättömät projektit jäävät vanhaan historiajärjestelmään.
{% endstep %}

{% step %}

#### Avaa sivusto uudelleen

Jos valitsit siirron tekemisen offline-tilassa, sinun täytyy avata sivusto uudelleen. Jos olet edelleen kirjautuneena, sinun tulee:

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

#### Siirto offline-tilassa

Jotta käyttäjät eivät voi kirjautua sisään historian siirtoskriptin ollessa käynnissä, noudata näitä vaiheita:

* Kirjaudu Overleaf-instanssiisi ylläpitäjätilillä
* 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, kaikki kirjautuneet käyttäjät ohjataan huoltosivulle, ja uudet käyttäjät, jotka vierailevat kirjautumissivulla, näkevät huoltosivun ja **ei** voivat kirjautua sisään.

#### Siirto verkossa

Siirtoskriptit on mahdollista suorittaa samalla kun sovellus on edelleen käynnissä. On kuitenkin muutamia seikkoja, jotka on otettava huomioon:

* Siirtoprosessi kuormittaa prosessoria paljon, joten sinun tulisi seurata resurssien käyttöä skriptin ollessa käynnissä.
* Kun `--concurrency` arvo on suuri, joidenkin palveluiden tapahtumasilmukka (`track-changes` erityisesti) saattaa kokea jonkin verran estymistä, mikä heikentäisi käyttökokemusta. Suosittelemme aloittamaan oletusarvolla `--concurrency=1` arvo.
* Voit pysäyttää skriptin milloin tahansa. Sen käynnistäminen uudelleen jatkaa siirtoa siitä, mihin jäit. Tämä on hyödyllistä, jos haluat suorittaa siirron vähemmän kiireisinä aikoina (esim. yöllä).

Suosittelemme sulkemaan sivuston ja suorittamaan siirron offline-tilassa huoltoikkunassa, kun projektien määrä on alle 1000 projektia (`db.projects.count()`). Jos projektien määrä on suuri, voit suorittaa skriptin ja seurata sen edistymistä, ja päättää sitten oman tilanteesi perusteella, jatkatko sen ajamista verkossa vai offline-tilassa.

#### Siivoa vanhat historiatiedot

Palvelin Prohon lisättiin skripti vanhojen historiatietojen 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 siirretty. Sitä voidaan käyttää myös vapauttamaan tilaa online-siirron aikana.

{% hint style="info" %}
Server Prossa ennen versiota 3.5.13 skripti poistaa sisällön `docHistory` ja `docHistoryIndex` kokoelmista. MongoDB ei vapauta levytilaa, kun poistat dokumentteja; sen sijaan se käyttää kyseisen tilan uudelleen saman kokoelman tuleville dokumenteille. Mikään ei enää kirjoita näihin kokoelmiin historian siirron jälkeen, joten levytila jää käyttämättä.

Jos haluat tehdä levytilan uudelleen käytettäväksi, voit päivittää Server Pro 3.5.13:een (kun käytössä on edelleen 3.x-julkaisu) tai Server Pro 4.2.5:een (kun käytössä on 4.x-julkaisu) ja suorittaa siivousskriptin uudelleen.

Server Prohon sisällytetty siivousskripti viimeisimmissä korjausversioissa `3.5.x` ja uusimmissa `4.x.x` poistaa kokoelmat viimeisenä vaiheena.

Siivousskriptin voi suorittaa uudelleen turvallisesti.
{% endhint %}

### Vianmääritys

Lisäämme tänne vianmääritysohjeita. Huomaa, että vaikka tarjoamme normaalisti tukea vain Server Pro -asiakkaille, tämän siirron luonteen vuoksi teemme parhaamme tukeaksemme myös CE-asiakkaita, jotka kohtaavat ongelmia, jotka liittyvät erityisesti täyden projektihistorian siirtoon.

Jos täyden projektihistorian siirtoskripti 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 eritellen:

Aihe: Ongelma täyden projektihistorian siirrossa

* 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`)
* Siirtoskriptin tuloste (jonka pitäisi sijaita kontissa polulla `/overleaf/services/web`)
* Siirretyt projektit: (siirtoskriptin tulosteen mukaan)
* Projektit yhteensä: (siirtoskriptin tulosteen mukaan)
* Jäljellä olevat projektit: (siirtoskriptin tulosteen mukaan)
* Siirron kesto:
* `bin/doctor` tuloste (kun käytössä on toolkit)
* Toolkitin versio: `$ git rev-parse HEAD` (kun käytössä on Toolkit)

Harkitse lokitiedostojen liittämistä `history-v1`, `project-history` ja `track-changes` palveluista sähköpostiin. Löydät ne polusta `/var/log/sharelatex` kontin `sharelatex` sisältä 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 niiden liittämistä.

#### Rikkinäisten tiedostopuuhien etsiminen

Siirto voi epäonnistua projekteissa, joilla on virheellinen tiedostopuu (esimerkiksi kun tiedostonimet ovat tyhjiä). Löydät listan 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"
BAD PATH: 123456789012345678901234 rootFolder.0.1.2.3
BAD PATH: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

Korjataksesi virheelliset polut, käytä `fix_malformed_filetree` skriptiä ja suorita komento kerran kutakin virheellistä polkua kohti:

{% 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 palauttaminen täydestä projektihistoriasta vanhaan historiaan

Jos jokin projekti on siirretty täydelliseen 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://overleaf-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.
