Migration vers l’historique complet des projets
La version3.5.x de la Community Edition inclut la fonctionnalité d’historique complet des projets (Full Project History), déjà disponible dans notre offre SaaS, overleaf.com
Après la mise à niveau de votre instance vers Overleaf CE 3.5.13, tous les nouveaux projets utiliseront par défaut l’historique complet des projets. Les projets existants continueront d’utiliser l’ancien système d’historique jusqu’à leur migration.
Si vous passez à la version
3.5.13 puis décidez de revenir à une version antérieure, vous devez restaurer une sauvegarde complète du système. L’historique des projets créés en 3.5.13 n’est pas compatible avec les versions antérieures d’Overleaf CE.- Il suit les modifications des fichiers binaires, ce que l’ancien système ne prend pas en charge.
- Les versions étiquetées sont prises en charge.
- Le système est globalement plus robuste, avec moins de risques de perte de données.
Migrer les projets existants
1
Créer une sauvegarde
Créez une sauvegarde complète de votre instance avec un instantané cohérent des répertoires mongo, redis et sharelatex.
2
Mettre à jour
Mettez à jour la version de l’image sharelatex/sharelatex vers 3.5.13.Toolkit : utilisez le script
$ bin/upgrade pour mettre à niveau le toolkit vers la dernière version et modifiez config/version pour indiquer 3.5.13.3
Démarrer l'instance
Idéalement, empêchez les utilisateurs d’accéder à votre instance pendant la migration, afin d’éviter toute perte de données si vous deviez restaurer votre sauvegarde. Consultez Migration hors ligne pour savoir comment procéder.
4
Attendre que tous les services soient opérationnels
Attendez que tous les services soient démarrés et opérationnels (voir la commande ci-dessous)
5
Exécuter le script de migration
--force-clean supprime les données d’historique partiellement migrées dans le nouveau système, ce qui permet de relancer la migration pour les projets individuels dont les tentatives précédentes ont échoué ;--fix-invalid-characters remplace les caractères non imprimables qui ne sont pas pris en charge par le nouveau système d’historique ;--convert-large-docs-to-file convertit les documents dépassant le seuil de taille modifiable de 2 Mo en fichiers non modifiables)La sortie devrait ressembler à ceci :0, et les dernières lignes indiqueront qu’il n’y a eu aucun échec :6
Rouvrir le site
Si vous avez choisi d’effectuer une migration hors ligne, vous devrez rouvrir le site. Si vous êtes toujours connecté, vous devrez :
- Cliquer sur le bouton Admin et choisir Manage Site
- Cliquer sur l’onglet Open/Close Editor
- Cliquer sur le bouton Reopen Editor
$ bin/up.Migration hors ligne
Pour empêcher les utilisateurs de se connecter pendant l’exécution du script de migration de l’historique, suivez ces étapes :- Connectez-vous à votre instance Overleaf avec un compte administrateur
- Cliquez sur le bouton Admin et choisissez Manage Site
- Cliquez sur l’onglet Open/Close Editor
- Cliquez sur le bouton Close Editor
- Cliquez sur le bouton Disconnect all users
Migration en ligne
Il est possible d’exécuter les scripts de migration pendant que l’application est toujours en cours d’exécution. Quelques points sont à prendre en compte :- Le processus de migration sollicite fortement le CPU ; surveillez l’utilisation des ressources pendant l’exécution du script.
- Avec une valeur
--concurrencyélevée, la boucle d’événements de certains services (track-changesen particulier) peut subir des blocages, ce qui dégraderait l’expérience utilisateur. Nous recommandons de commencer avec la valeur par défaut--concurrency=1. - Vous pouvez arrêter le script à tout moment. Le relancer reprendra la migration là où vous l’aviez laissée. C’est utile si vous préférez exécuter la migration pendant les heures creuses (par exemple la nuit).
db.projects.count()). Si le nombre de projets est élevé, vous pouvez lancer le script et surveiller sa progression, puis décider de poursuivre en ligne ou hors ligne selon votre situation.
Nettoyer les anciennes données d’historique
Un script de nettoyage des anciennes données d’historique a été ajouté dans Server Pro3.5.6, 4.0.6 et 4.1.0.
Dans Server Pro avant la version 3.5.13, le script supprime le contenu des collections
docHistory et docHistoryIndex. MongoDB ne libère pas l’espace disque après la suppression de documents ; il réutilise cet espace pour de futurs documents de la même collection. Plus rien n’écrira dans ces collections après la migration de l’historique, l’espace disque restera donc inutilisé.Si vous souhaitez récupérer cet espace disque, vous pouvez passer à Server Pro 3.5.13 (si vous êtes encore sur la version 3.x) ou à Server Pro 4.2.5 (si vous êtes sur la version 4.x) et relancer le script de nettoyage.Le script de nettoyage inclus dans les dernières versions correctives de Server Pro 3.5.x et dans les dernières versions 4.x.x supprime les collections en dernière étape.Le script de nettoyage peut être relancé sans risque.Dépannage
Nous ajouterons ici des conseils de dépannage. Notez que, bien que nous ne fournissions normalement du support qu’aux clients Server Pro, étant donné la nature de cette migration, nous ferons également de notre mieux pour aider les utilisateurs CE rencontrant des problèmes spécifiques à la migration vers l’historique complet des projets. Si le script de migration vers l’historique complet des projets échoue (c’est-à-dire s’il se termine avec une erreur ou affiche un nombre de projets en échec différent de zéro), envoyez les informations suivantes à notre équipe de support par e-mail à support+historymigration@overleaf.com, en précisant : Objet : Full project history migration problem- Type d’instance : CE ou Server Pro (rayez la mention inutile)
- Type d’installation : Overleaf toolkit,
docker-compose.ymlou autre (rayez la mention inutile) - Version : 3.5.x (toolkit :
$ cat config/version) - Sortie du script de migration (qui devrait se trouver dans le conteneur sous
/overleaf/services/web) - Migrated Projects : (d’après la sortie du script de migration)
- Total Projects : (d’après la sortie du script de migration)
- Remaining Projects : (d’après la sortie du script de migration)
- Durée de la migration :
- Sortie de
bin/doctor(si vous utilisez le toolkit) - Version du Toolkit :
$ git rev-parse HEAD(si vous utilisez le Toolkit)
history-v1, project-history et track-changes. Vous les trouverez dans /var/log/sharelatex à l’intérieur du conteneur sharelatex et pouvez les exporter ainsi :
Trouver les arborescences de fichiers corrompues
La migration peut échouer pour les projets dont l’arborescence de fichiers est malformée (par exemple, lorsque des noms de fichiers sont vides). Vous pouvez obtenir la liste de ces problèmes avec le scriptfind_malformed_filetrees, qui vérifie tous les projets de la base de données :
fix_malformed_filetree, en exécutant la commande une fois pour chaque chemin incorrect :
Rétrograder des projets de l’historique complet vers l’ancien historique
Si un projet a été migré vers l’historique complet mais que vous souhaitez revenir à l’ancien historique, utilisez le scriptdowngrade_project comme suit :

