#
Guia de Migração 1.12.0
SillyTavern 1.12.0 (codinome atualização "Neo Server") inclui várias mudanças críticas que podem afetar a maneira como você usa o SillyTavern.
Este guia irá prepará-lo para a atualização e fornecer algumas orientações adicionais.
#
Atualização de armazenamento de dados
1.12.0 muda a maneira como o SillyTavern lida com os dados do usuário.
Anteriormente, todos os dados persistentes eram armazenados junto com a parte frontend no diretório /public, o que criava confusão e pontos potenciais de falha, além de tornar a conteinerização e a instalação do aplicativo em todo o sistema bastante desafiadora.
#
O que mudou?
Todas as informações persistentes de /public como configurações e chats (lista completa abaixo) foram movidas para um diretório separado com o caminho configurável, tornando-o portátil e independente do próprio servidor web. Quando necessário para fins de compatibilidade, por exemplo, para hospedar extensões, character cards de tamanho completo, uploads de imagens de usuário, etc., um redirecionamento inteligente foi configurado para hospedar automaticamente arquivos de usuário do diretório de dados.
#
Definindo uma raiz de dados
Você pode fornecer um caminho absoluto ou relativo (ao diretório do repositório ST) para a raiz de dados por meio de config.yaml ou iniciando o servidor com o argumento de console --dataRoot.
Exemplo YAML
# -- CONFIGURAÇÃO DE DADOS --
# Diretório raiz para armazenamento de dados do usuário
dataRoot: C:\Users\Harry\Documents\ST-Data
Exemplo de Console
node server.js --dataRoot="/Users/harry/ST-Data"
# OU
npm run start -- --dataRoot="/Users/harry/ST-Data"
O caminho padrão da raiz de dados é ./data, o que significa o diretório data no repositório do SillyTavern.
Nota
O caminho da raiz de dados deve ser um caminho absoluto completo ou um caminho relativo completo. Você não pode usar atalhos de caminho como ~ ou %APP_DATA%, pois estes são resolvidos por um shell, não pelo sistema operacional.
#
Migração
#
IMPORTANTE! Antes de começarmos
- Apenas se você quiser mover dataRoot do local padrão. Caso contrário, pule esta parte. Defina a raiz de dados antes de executar o servidor pela primeira vez após baixar uma atualização. Execute
npm installpara que oconfig.yamlseja populado com um novo valor, ou passe um argumento de console. - Todos os dados serão migrados para uma conta
default-user. Veja mais sobreUsuários abaixo.
#
Instalações sem container (bare metal)
Você não precisa fazer nada! Uma migração automática deve lidar com tudo para você quando você iniciar o servidor ST e ele detectar o formato de armazenamento antigo (verificando a existência do diretório /public/characters).
Ao mover quaisquer arquivos, um backup automático será criado no diretório /backups/_migration/YYYY-MM-DD (resolvido para a data atual), mas é sempre uma boa prática fazer um backup manual completo antes de executar a migração.
#
Instalações conteinerizadas (Docker)
Migrar os dados em volumes Docker é um pouco mais complicado, mas bastante direto. Embora o docker-compose.yml fornecido com o repositório tenha sido atualizado para refletir as mudanças, você pode precisar ajustar seus workflows/deployments personalizados.
Passo 1. Crie um novo volume e monte-o no caminho "/home/node/app/data" dentro do container. Não remova o volume config.
volumes:
- "./config:/home/node/app/config"
- "./data:/home/node/app/data"
Passo 2. Mova tudo, exceto o arquivo config.yaml, do volume config para o subdiretório default-user do volume data.
Passo 3. Reconstrua o container e inicie-o.
Nota
Links simbólicos entre o diretório /public e o volume config não são mais necessários e não estão incluídos no container Docker!
#
O que migrar?
Os seguintes arquivos e diretórios estão sujeitos à migração de dados. Assumindo a configuração padrão, os caminhos antes e depois são fornecidos na tabela abaixo.
#
Usuários
1.12.0 adiciona uma capacidade (completamente opcional) de criar uma configuração multi-usuário no mesmo servidor, permitindo que vários usuários usem suas próprias instâncias do SillyTavern totalmente isoladas, mesmo ao mesmo tempo. Contas de usuário também podem ser protegidas por senha para uma camada adicional de privacidade.
Por favor, consulte a documentação de Usuários para mais informações.