Migração para o histórico completo de projetos
A versão3.5.x da Community Edition inclui o recurso Full Project History, que já está disponível na nossa oferta SaaS, o overleaf.com
Depois de atualizar a sua instância para o Overleaf CE 3.5.13, todos os novos projetos usarão o Full Project History por padrão. Os projetos existentes continuarão usando o sistema de histórico legado até serem migrados.
Se você atualizar para a
3.5.13 e decidir voltar para uma versão anterior, deverá restaurar a partir de um backup completo do sistema. O histórico dos projetos criados na 3.5.13 não é compatível com versões anteriores do Overleaf CE.- Rastreia alterações em arquivos binários, o que não é suportado no sistema legado.
- Há suporte para versões com rótulos.
- O sistema é, em geral, mais robusto, com menor risco de perda de dados.
Migrar projetos existentes
1
Criar um backup
Crie um backup completo da sua instância, com um snapshot consistente dos diretórios mongo, redis e sharelatex.
2
Atualizar
Atualize a versão da imagem sharelatex/sharelatex para 3.5.13.Toolkit: use o script
$ bin/upgrade para atualizar o Toolkit para a versão mais recente e altere config/version para 3.5.13.3
Iniciar a instância
Idealmente, você deve impedir que os usuários acessem a sua instância durante a migração, para evitar perda de dados caso seja necessário restaurar o backup. Consulte Offline migration para mais informações sobre como fazer isso.
4
Aguardar até que todos os serviços estejam em execução
Aguarde até que todos os serviços estejam em execução (veja o comando abaixo)
5
Executar o script de migração
--force-clean limpa os dados de histórico de projetos parcialmente migrados no novo sistema, o que permite repetir a migração de projetos individuais que falharam em tentativas anteriores;--fix-invalid-characters substitui caracteres não imprimíveis que não são suportados pelo novo sistema de histórico;--convert-large-docs-to-file converte documentos acima do limite de 2MB de tamanho editável em arquivos não editáveis)A saída deverá ser semelhante a esta:0, e as últimas linhas indicarão que não houve falhas:6
Reabrir o site
Se você optou por realizar uma migração offline, precisará reabrir o site. Se ainda estiver conectado, deverá:
- Clicar no botão Admin e escolher Manage Site
- Clicar na aba Open/Close Editor
- Clicar no botão Reopen Editor
$ bin/up.Migração offline
Para impedir que os usuários consigam entrar enquanto o script de migração do histórico estiver em execução, siga estas etapas:- Entre na sua instância do Overleaf com uma conta de administrador
- Clique no botão Admin e escolha Manage Site
- Clique na aba Open/Close Editor
- Clique no botão Close Editor
- Clique no botão Disconnect all users
Migração online
É possível executar os scripts de migração enquanto a aplicação continua em execução. Há algumas considerações a ter em conta:- O processo de migração usa muita CPU; você deve monitorar o uso de recursos enquanto o script estiver em execução.
- Com um valor alto de
--concurrency, o event loop de alguns serviços (track-changesem particular) pode sofrer bloqueios, o que levaria a uma experiência de usuário degradada. Recomendamos começar com o valor padrão--concurrency=1. - Você pode interromper o script a qualquer momento. Ao iniciá-lo novamente, a migração será retomada de onde parou. Isso é útil caso prefira executar a migração em horários de menor movimento (por exemplo, à noite).
db.projects.count()). Se o número de projetos for grande, você pode executar o script e monitorar o seu progresso, e depois decidir se continua executando-o online ou offline, de acordo com o seu caso específico.
Limpar os dados do histórico legado
Um script para limpar os dados do histórico legado foi adicionado no Server Pro3.5.6, 4.0.6 e 4.1.0.
No Server Pro anterior à versão 3.5.13, o script exclui o conteúdo das coleções
docHistory e docHistoryIndex. O MongoDB não libera espaço em disco depois de excluir documentos; em vez disso, reutiliza esse espaço para futuros documentos na mesma coleção. Nada voltará a escrever nestas coleções após a migração do histórico, por isso o espaço em disco permanecerá sem uso.Se quiser disponibilizar novamente o espaço em disco, pode atualizar para o Server Pro 3.5.13 (se ainda estiver usando a versão 3.x) ou para o Server Pro 4.2.5 (se estiver usando a versão 4.x) e executar novamente o script de limpeza.O script de limpeza incluído nas versões de patch mais recentes do Server Pro 3.5.x e na 4.x.x mais recente remove as coleções como etapa final.É seguro executar novamente o script de limpeza.Solução de problemas
Adicionaremos aqui conselhos de solução de problemas. Observe que, embora normalmente ofereçamos suporte apenas a clientes do Server Pro, dada a natureza desta migração, também faremos o possível para ajudar clientes da CE que tenham problemas específicos da migração para o histórico completo de projetos. Se o script de migração para o histórico completo de projetos falhar (ou seja, terminar com um erro ou indicar um número de projetos com falha diferente de zero), envie os seguintes detalhes à nossa equipe de suporte por e-mail para support+historymigration@overleaf.com, indicando: Assunto: Full project history migration problem- Tipo de instância: CE ou Server Pro (apague conforme o caso)
- Tipo de instalação: Overleaf Toolkit,
docker-compose.ymlou outro (apague conforme o caso) - Versão: 3.5.x (Toolkit:
$ cat config/version) - Saída do script de migração (que deve estar localizada no contêiner em
/overleaf/services/web) - Projetos migrados: (conforme a saída do script de migração)
- Total de projetos: (conforme a saída do script de migração)
- Projetos restantes: (conforme a saída do script de migração)
- Duração da migração:
- Saída do
bin/doctor(ao usar o Toolkit) - Versão do Toolkit:
$ git rev-parse HEAD(ao usar o Toolkit)
history-v1, project-history e track-changes. Você pode encontrá-los em /var/log/sharelatex dentro do contêiner sharelatex e exportá-los assim:
Encontrar árvores de arquivos corrompidas
A migração pode falhar em projetos que têm uma árvore de arquivos malformada (por exemplo, com nomes de arquivo vazios). Você pode obter uma lista destes problemas usando o scriptfind_malformed_filetrees, que verifica todos os projetos no banco de dados:
fix_malformed_filetree, executando o comando uma vez para cada caminho inválido:
Reverter projetos do histórico completo para o histórico legado
Se houver um projeto que foi migrado para o histórico completo de projetos, mas você quiser voltar ao histórico legado, use o scriptdowngrade_project da seguinte forma:

