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

# (Migración v3.5.13) Migración del historial completo del proyecto

## Migración completa del historial del proyecto

La `3.5.x` la versión de Community Edition incluye la [función Full Project History](https://www.overleaf.com/learn/latex/Using_the_History_feature) que ya está disponible en nuestra oferta SaaS, [overleaf.com](http://overleaf.com/)

Después de actualizar su instancia a Overleaf CE `3.5.13`, todos los nuevos proyectos usarán Full Project History de forma predeterminada. Los proyectos existentes seguirán usando el sistema de historial heredado hasta que se migren.

{% hint style="info" %}
Si actualiza a `3.5.13` y decide degradar a una versión anterior, entonces debe restaurar desde una copia de seguridad completa del sistema. El historial de los proyectos creados en `3.5.13` no es compatible con versiones anteriores de Overleaf CE.
{% endhint %}

El nuevo Full Project History aporta varias mejoras para los usuarios:

* Realiza un seguimiento de los cambios en archivos binarios, lo cual no es compatible con el sistema heredado.
* Hay compatibilidad con versiones etiquetadas.
* En general, el sistema es más robusto y hay menos riesgo de pérdida de datos.

Consulte [la documentación de Full Project History](https://www.overleaf.com/learn/latex/Using_the_History_feature) para obtener más información sobre el historial completo del proyecto.

### Migración de proyectos existentes

{% stepper %}
{% step %}

#### Crear una copia de seguridad

Crear una copia de seguridad completa [copia de seguridad](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) de su instancia con una instantánea coherente de los **mongo**, **redis** y **sharelatex** directorios.
{% endstep %}

{% step %}

#### Actualiza

Actualice la versión de la imagen sharelatex/sharelatex a 3.5.13.

Toolkit: use el `$ bin/upgrade` script para actualizar el toolkit a la última versión y edite **config/version** a 3.5.13.
{% endstep %}

{% step %}

#### Iniciar la instancia

Idealmente, querrá impedir que los usuarios accedan a su instancia mientras se realiza la migración, para evitar la pérdida de datos en caso de que necesite restaurar su copia de seguridad. Consulte [Migración sin conexión](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) para obtener más información sobre cómo hacerlo.
{% endstep %}

{% step %}

#### Espere hasta que todos los servicios estén en funcionamiento

Espere hasta que todos los servicios estén en funcionamiento (vea el comando a continuación)

{% code overflow="wrap" %}

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

{% endcode %}
{% endstep %}

{% step %}

#### Ejecute el script de migración

{% code overflow="wrap" %}

```bash
# Usuarios de 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"

# Usuarios de docker-compose.yml heredado:
$ 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` borra los datos del historial de proyectos migrados parcialmente en el nuevo sistema; esto permite reintentar la migración de proyectos individuales que fallaron en intentos anteriores;

`--fix-invalid-characters` reemplaza los caracteres no imprimibles que no son compatibles con el nuevo sistema de historial;

`--convert-large-docs-to-file` (convierte los documentos que superan el umbral de tamaño editable de 2 MB en un archivo no editable)

La salida debería verse así:

```bash
Proyectos migrados  :  1
Proyectos totales     :  51
Proyectos restantes :  51
Total de registros de historial para migrar: 98
Iniciando la migración...
Migrando proyecto: 63d29b5772dd80015a81bffe
resultado de la migración { upgraded: true, historyType: 'NoneWithoutConversion' }
Migrando proyecto: 63d29c2e72dd80015a81c0a2
resultado de la migración { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

Migración completada
==================
Proyectos migrados:  51
Proyectos fallidos:  0
Terminado.
```

Si la migración tiene éxito, obtendrá un código de salida de `0`, y las últimas líneas indicarán que no hubo fallos:

```bash
Proyectos fallidos:  0
Terminado.
```

Puede reabrir el acceso a sus usuarios (vea el siguiente paso). Si hay fallos, consulte la sección de solución de problemas a continuación. Aun así, puede reabrir el sitio si los problemas no se corrigen de inmediato, y los proyectos no migrados permanecerán en el sistema de historial heredado.
{% endstep %}

{% step %}

#### Reabrir el sitio

Si eligió realizar una migración sin conexión, entonces deberá volver a abrir el sitio. Si todavía ha iniciado sesión, deberá:

1. Haz clic en el **Administrador** botón y elija **Administrar sitio**
2. Haz clic en el **Abrir/Cerrar editor** pestaña
3. Haz clic en el **Reabrir editor** botón

Si ha cerrado su navegador, deberá reiniciar el sitio con `$ bin/up`.
{% endstep %}
{% endstepper %}

#### Migración sin conexión

Para impedir que los usuarios puedan iniciar sesión mientras se ejecuta el script de migración del historial, siga estos pasos:

* Inicie sesión en su instancia de Overleaf con una cuenta de administrador
* Haz clic en el **Administrador** botón y elija **Administrar sitio**
* Haz clic en el **Abrir/Cerrar editor** pestaña
* Haz clic en el **Cerrar editor** botón
* Haz clic en el **Desconectar a todos los usuarios** botón

Una vez hecho esto, si hay usuarios conectados, serán redirigidos a la página de mantenimiento, y cualquier usuario nuevo que visite la página de inicio de sesión verá la página de mantenimiento y **no** podrá iniciar sesión.

#### Migración en línea

Es posible ejecutar los scripts de migración mientras la aplicación sigue en funcionamiento. Hay algunas consideraciones a tener en cuenta:

* El proceso de migración consume muchos recursos de CPU; debe supervisar el uso de recursos mientras el script se está ejecutando.
* Con un valor alto de `--concurrency` valor, el bucle de eventos en algunos servicios (`track-changes` en particular) podría experimentar cierto bloqueo, lo que provocaría una experiencia de UX degradada. Recomendamos comenzar con el valor predeterminado `--concurrency=1` valor.
* Puede detener el script en cualquier momento. Al iniciarlo de nuevo, la migración se reanudará donde la dejó. Esto es útil si prefiere ejecutar la migración en horas menos concurridas (por ejemplo, por la noche).

Nuestra recomendación es cerrar el sitio y ejecutar la migración sin conexión en una ventana de mantenimiento cuando su número de proyectos sea inferior a 1000 proyectos (`db.projects.count()`). Si el número de proyectos es grande, puede ejecutar el script y supervisar su progreso; luego decidir si continúa ejecutándolo en línea o sin conexión según su caso particular.

#### Limpiar los datos del historial heredado

Se agregó en Server Pro un script para limpiar los datos del historial heredado `3.5.6`, `4.0.6` y `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 %}

El script puede ejecutarse después de que todos los proyectos hayan sido migrados. También puede usarse para liberar algo de espacio durante una migración en línea.

{% hint style="info" %}
En Server Pro anteriores a la versión 3.5.13, el script elimina el contenido de `docHistory` y `docHistoryIndex` las colecciones. MongoDB no libera espacio en disco después de que elimina documentos; en su lugar, reutilizará ese espacio para futuros documentos en la misma colección. Nada volverá a escribir en estas colecciones después de la migración del historial, por lo que el espacio en disco permanecerá sin usar.

Si desea volver a disponer del espacio en disco, puede actualizar a Server Pro 3.5.13 (si aún usa la versión 3.x) o a Server Pro 4.2.5 (si usa la versión 4.x) y volver a ejecutar el script de limpieza.

El script de limpieza, tal como se incluye en Server Pro, en las últimas versiones de parche de `3.5.x` y las últimas `4.x.x` elimina las colecciones como paso final.

Es seguro volver a ejecutar el script de limpieza.
{% endhint %}

### Solución de problemas

Añadiremos aquí consejos de solución de problemas. Tenga en cuenta que, aunque normalmente ofrecemos soporte solo a los clientes de Server Pro, dada la naturaleza de esta migración, también haremos todo lo posible por ayudar a los clientes de CE que experimenten problemas específicos de la migración del historial completo del proyecto.

Si el script de migración del historial completo del proyecto falla (es decir, sale con un error o imprime un número distinto de cero de proyectos fallidos), envíe los siguientes detalles a nuestro equipo de soporte por correo electrónico [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), indicando:

Asunto: Problema de migración del historial completo del proyecto

* Tipo de instancia: CE o Server Pro (elimínese lo que corresponda)
* Tipo de instalación: Overleaf toolkit o `docker-compose.yml` u otro (elimínese lo que corresponda)
* Versión: 3.5.x (toolkit: `$ cat config/version`)
* Salida del script de migración (que debería encontrarse en el contenedor en `/overleaf/services/web`)
* Proyectos migrados: (según la salida del script de migración)
* Proyectos totales: (según la salida del script de migración)
* Proyectos restantes: (según la salida del script de migración)
* Duración de la migración:
* `bin/doctor` salida (al usar el toolkit)
* Versión del toolkit: `$ git rev-parse HEAD` (al usar Toolkit)

Considere adjuntar los archivos de registro de los `history-v1`, `project-history` y `track-changes` servicios al correo electrónico. Puede encontrarlos en `/var/log/sharelatex` dentro del `sharelatex` contenedor y expórtelos así:

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

Por favor, elimine cualquier información sensible de los archivos de registro antes de adjuntarlos.

#### Encontrar árboles de archivos dañados

La migración puede fallar en proyectos que tengan un árbol de archivos mal formado (por ejemplo, cuando los nombres de archivo están vacíos). Puede encontrar una lista de estos problemas usando el `find_malformed_filetrees` script que comprueba todos los proyectos en la base de datos:

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

Para corregir las rutas no válidas, use el `fix_malformed_filetree` script, ejecutando el comando una vez por cada ruta incorrecta:

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

#### Degradación de proyectos de Full Project History a historial heredado

Si hay un proyecto que se ha migrado a Full Project History, pero desea volver al historial heredado, use el `downgrade_project` script de la siguiente manera:

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