> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# (v3.5.13-siirto) Koko projektihistorian siirto

## Koko projektihistorian siirto

Community Editionin `3.5.x`-julkaisu sisältää [Full Project History -ominaisuuden](https://www.overleaf.com/learn/latex/Using_the_History_feature), joka on jo käytettävissä SaaS-palvelussamme [overleaf.com](http://overleaf.com/)

Kun instanssisi on päivitetty Overleaf CE -versioon `3.5.13`, kaikki uudet projektit käyttävät oletuksena Full Project History -ominaisuutta. Olemassa olevat projektit käyttävät edelleen vanhaa historiajärjestelmää, kunnes ne siirretään.

<Info>
  Jos päivität versioon `3.5.13` ja päätät palata aiempaan versioon, sinun tulee palauttaa järjestelmä täydestä varmuuskopiosta. Versiossa `3.5.13` luotujen projektien historia ei ole yhteensopiva Overleaf CE:n aiempien versioiden kanssa.
</Info>

Uusi Full Project History tuo käyttäjille useita parannuksia:

* Se seuraa muutoksia binääritiedostoissa, mitä vanha järjestelmä ei tue.
* Nimettyjä versioita tuetaan.
* Järjestelmä on yleisesti luotettavampi, ja tietojen menettämisen riski on pienempi.

Lisätietoja koko projektihistoriasta on [Full Project History -dokumentaatiossa](https://www.overleaf.com/learn/latex/Using_the_History_feature).

### Olemassa olevien projektien siirtäminen

<Steps>
  <Step title="Luo varmuuskopio">
    Luo instanssistasi täysi [varmuuskopio](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup), joka sisältää johdonmukaisen tilannevedoksen **mongo**-, **redis**- ja **sharelatex**-hakemistoista.
  </Step>

  <Step title="Päivitä">
    Päivitä sharelatex/sharelatex-imagen versioksi 3.5.13.

    Toolkit: Päivitä Toolkit uusimpaan versioon `$ bin/upgrade`-skriptillä ja muuta tiedoston **config/version** arvoksi 3.5.13.
  </Step>

  <Step title="Käynnistä instanssi">
    Ihannetapauksessa käyttäjien pääsy instanssiisi kannattaa estää siirron ajaksi, jotta vältetään tietojen menetys siinä tapauksessa, että varmuuskopio joudutaan palauttamaan. Lisätietoja tämän tekemisestä on kohdassa [Offline-siirto](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration).
  </Step>

  <Step title="Odota, kunnes kaikki palvelut ovat käynnissä">
    Odota, kunnes kaikki palvelut ovat käynnissä (katso alla oleva komento)

    ```bash wrap theme={null}
    $ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
    web sharelatex is alive (api)%
    ```
  </Step>

  <Step title="Suorita siirtoskripti">
    ```bash wrap theme={null}
    # Overleaf Toolkit users:
    $ 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"

    # legacy docker-compose.yml users:
    $ 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"
    ```

    `--force-clean` tyhjentää osittain siirretyt projektihistorian tiedot uudesta järjestelmästä, mikä mahdollistaa siirron uudelleenyrittämisen yksittäisille projekteille, joiden siirto epäonnistui aiemmilla kerroilla;

    `--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 muokattavuusrajan, ei-muokattaviksi tiedostoiksi)

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

    ```bash theme={null}
    Migrated Projects  :  1
    Total Projects     :  51
    Remaining Projects :  51
    Total history records to migrate: 98
    Starting migration...
    Migrating project: 63d29b5772dd80015a81bffe
    migration result { upgraded: true, historyType: 'NoneWithoutConversion' }
    Migrating project: 63d29c2e72dd80015a81c0a2
    migration result { upgraded: true, historyType: 'NoneWithoutConversion' }

    // …

    Migration complete
    ==================
    Projects migrated:  51
    Projects failed:  0
    Done.
    ```

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

    ```bash theme={null}
    Projects failed:  0
    Done.
    ```

    Voit avata pääsyn uudelleen käyttäjillesi (katso seuraava vaihe). Jos epäonnistumisia esiintyy, katso alla oleva vianmääritysosio. Voit silti avata sivuston uudelleen, vaikka ongelmia ei korjattaisi heti, ja siirtämättömät projektit pysyvät vanhassa historiajärjestelmässä.
  </Step>

  <Step title="Avaa sivusto uudelleen">
    Jos valitsit offline-siirron, sinun on avattava sivusto uudelleen. Jos olet edelleen kirjautuneena sisään, toimi näin:

    1. Napsauta **Admin**-painiketta ja valitse **Manage Site**
    2. Napsauta **Open/Close Editor** -välilehteä
    3. Napsauta **Reopen Editor** -painiketta

    Jos olet sulkenut selaimesi, sinun on käynnistettävä sivusto uudelleen komennolla `$ bin/up`.
  </Step>
</Steps>

#### Offline-siirto

Estääksesi käyttäjiä kirjautumasta sisään historian siirtoskriptin ollessa käynnissä, toimi seuraavasti:

* Kirjaudu Overleaf-instanssiisi ylläpitäjän tilillä
* Napsauta **Admin**-painiketta ja valitse **Manage Site**
* Napsauta **Open/Close Editor** -välilehteä
* Napsauta **Close Editor** -painiketta
* Napsauta **Disconnect all users** -painiketta

Kun tämä on tehty, sisään kirjautuneet käyttäjät ohjataan huoltosivulle, ja kirjautumissivulle saapuvat uudet käyttäjät näkevät huoltosivun eivätkä **voi** kirjautua sisään.

#### Online-siirto

Siirtoskriptit on mahdollista suorittaa sovelluksen ollessa edelleen käynnissä. Tällöin on otettava huomioon muutamia seikkoja:

* Siirtoprosessi kuormittaa suoritinta voimakkaasti, joten resurssien käyttöä kannattaa seurata skriptin ollessa käynnissä.
* Suurella `--concurrency`-arvolla joidenkin palveluiden (erityisesti `track-changes`) tapahtumasilmukka saattaa estyä ajoittain, mikä heikentäisi käyttökokemusta. Suosittelemme aloittamaan oletusarvolla `--concurrency=1`.
* Voit pysäyttää skriptin milloin tahansa. Kun käynnistät sen uudelleen, siirto jatkuu siitä, mihin se jäi. Tämä on hyödyllistä, jos haluat suorittaa siirron hiljaisempina aikoina (esim. yöllä).

Suosittelemme sulkemaan sivuston ja suorittamaan siirron offline-tilassa huoltoikkunan aikana, kun projekteja on alle 1000 (`db.projects.count()`). Jos projekteja on paljon, voit suorittaa skriptin ja seurata sen edistymistä ja päättää sitten tilanteesi mukaan, jatketaanko suoritusta online- vai offline-tilassa.

#### Vanhan historiatiedon siivoaminen

Vanhan historiatiedon siivoamiseen tarkoitettu skripti lisättiin Server Pro -versioihin `3.5.6`, `4.0.6` ja `4.1.0`.

```bash wrap theme={null}
bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/history/clean_sl_history_data.js"
```

Skriptin voi suorittaa, kun kaikki projektit on siirretty. Sitä voi käyttää myös tilan vapauttamiseen online-siirron aikana.

<Info>
  Server Pron versiota 3.5.13 vanhemmissa versioissa skripti poistaa kokoelmien `docHistory` ja `docHistoryIndex` sisällön. MongoDB ei vapauta levytilaa dokumenttien poistamisen jälkeen, vaan käyttää tilan uudelleen saman kokoelman tuleville dokumenteille. Historian siirron jälkeen näihin kokoelmiin ei enää kirjoiteta mitään, joten levytila jää käyttämättä.

  Jos haluat saada levytilan jälleen käyttöön, voit päivittää Server Pro -versioon 3.5.13 (jos käytät vielä 3.x-julkaisua) tai Server Pro -versioon 4.2.5 (jos käytät 4.x-julkaisua) ja suorittaa siivousskriptin uudelleen.

  `3.5.x`:n uusimpien korjausjulkaisujen ja uusimman `4.x.x`:n Server Prohon sisältyvä siivousskripti poistaa kokoelmat viimeisenä vaiheenaan.

  Siivousskriptin voi turvallisesti suorittaa uudelleen.
</Info>

### Vianmääritys

Lisäämme vianmääritysohjeita tähän. Huomaa, että vaikka tarjoamme tukea tavallisesti vain Server Pro -asiakkaille, tämän siirron luonteen vuoksi pyrimme parhaamme mukaan tukemaan myös CE-asiakkaita, jotka kohtaavat nimenomaan koko projektihistorian siirtoon liittyviä ongelmia.

Jos koko projektihistorian siirtoskripti epäonnistuu (eli päättyy virheeseen tai ilmoittaa epäonnistuneiden projektien määräksi muun kuin nollan), lähetä seuraavat tiedot tukitiimillemme sähköpostitse osoitteeseen [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 kerro seuraavat asiat:

Aihe: Full project history migration problem

* Instanssin tyyppi: CE tai Server Pro (poista tarpeeton)
* Asennustyyppi: Overleaf toolkit, `docker-compose.yml` tai muu (poista tarpeeton)
* Versio: 3.5.x (toolkit: `$ cat config/version`)
* Siirtoskriptin tuloste (jonka pitäisi sijaita kontissa hakemistossa `/overleaf/services/web`)
* Siirretyt projektit: (siirtoskriptin tulosteen mukaan)
* Projekteja yhteensä: (siirtoskriptin tulosteen mukaan)
* Jäljellä olevat projektit: (siirtoskriptin tulosteen mukaan)
* Siirron kesto:
* `bin/doctor`-komennon tuloste (Toolkitia käytettäessä)
* Toolkitin versio: `$ git rev-parse HEAD` (Toolkitia käytettäessä)

Harkitse palveluiden `history-v1`, `project-history` ja `track-changes` lokitiedostojen liittämistä sähköpostiin. Löydät ne `sharelatex`-kontin sisältä hakemistosta `/var/log/sharelatex`, ja voit viedä ne näin:

```bash theme={null}
$ 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 tiedostopuiden etsiminen

Siirto voi epäonnistua projekteissa, joiden tiedostopuu on virheellinen (esimerkiksi jos tiedostonimet ovat tyhjiä). Voit saada luettelon näistä ongelmista `find_malformed_filetrees`-skriptillä, joka tarkistaa kaikki tietokannan projektit:

```bash wrap theme={null}
$ 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
...
```

Korjaa virheelliset polut `fix_malformed_filetree`-skriptillä suorittamalla komento kerran kutakin virheellistä polkua kohden:

```bash wrap theme={null}
$ 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"
...
```

#### Projektien palauttaminen koko projektihistoriasta vanhaan historiaan

Jos jokin projekti on siirretty koko projektihistoriaan, mutta haluat palata vanhaan historiaan, käytä `downgrade_project`-skriptiä seuraavasti:

```bash wrap theme={null}
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; PROJECT_ID=YOUR
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.