# 1.12.0 迁移指南

SillyTavern 1.12.0(代号"Neo Server"更新)包含几个可能影响您使用 SillyTavern 方式的关键更改。

本指南将帮助您为更新做好准备,并提供一些进一步的指导。

# 数据存储更新

1.12.0 改变了 SillyTavern 处理用户数据的方式。

以前,所有持久化数据都与前端部分一起存储在 /public 目录中,这造成了混乱和潜在的故障点,同时也使容器化和系统范围的应用程序安装相当具有挑战性。

# 有什么变化?

来自 /public 的所有持久化信息,如设置和聊天(完整列表见下文),已被移动到具有可配置路径的单独目录中,使其可移植且独立于 Web 服务器本身。当出于兼容性目的需要时,例如用于托管扩展、完整尺寸的角色卡片、用户图像上传等,已设置智能重定向以自动从数据目录托管用户文件。

# 设置数据根目录

您可以通过 config.yaml 或使用 --dataRoot 控制台参数启动服务器来提供数据根目录的绝对路径或相对路径(相对于 ST 仓库目录)。

YAML 示例

# -- 数据配置 --
# 用户数据存储的根目录
dataRoot: C:\Users\Harry\Documents\ST-Data

控制台示例

node server.js --dataRoot="/Users/harry/ST-Data"
# 或者
npm run start -- --dataRoot="/Users/harry/ST-Data"

默认数据根目录路径是 ./data,这意味着 SillyTavern 仓库中的 data 目录。

# 迁移

# 重要! 在我们开始之前

  1. 仅当您想将 dataRoot 从默认位置移动时。否则,请跳过此部分。 在拉取更新后首次运行服务器之前设置数据根目录。运行 npm install 以使 config.yaml 填充新值,或传递控制台参数。
  2. 所有数据将被迁移到 default-user 账户。有关更多信息,请参阅下面的用户部分。

# 无容器(裸机)安装

您无需做任何操作!当您启动 ST 服务器并且它检测到旧的存储格式(通过检查 /public/characters 目录的存在)时,自动迁移应该会为您处理一切。

在移动任何文件时,将在 /backups/_migration/YYYY-MM-DD(解析为当前日期)目录中创建自动备份,但在运行迁移之前进行完整的手动备份始终是一个好习惯。

# 容器化(Docker)安装

迁移 Docker 卷中的数据有点棘手,但相当简单。虽然仓库提供的 docker-compose.yml 已更新以反映这些更改,但您可能需要调整自定义工作流程/部署。

步骤 1. 创建一个新卷,并将其挂载到容器内的 "/home/node/app/data" 路径。不要删除 config 卷。

volumes:
    - "./config:/home/node/app/config"
    - "./data:/home/node/app/data"

步骤 2.config 卷中除 config.yaml 文件之外的所有内容移动到 data 卷的 default-user 子目录中。

步骤 3. 重新构建容器并启动它。

# 需要迁移什么?

以下文件和目录需要进行数据迁移。假设使用默认配置,下表提供了迁移前后的路径。

迁移前 迁移后
/secrets.json /data/default-user/secrets.json
/thumbnails /data/default-user/thumbnails
/vectors /data/default-user/vectors
/public/settings.json /data/default-user/settings.json
/public/stats.json /data/default-user/stats.json
/public/assets /data/default-user/assets
/public/backgrounds /data/default-user/backgrounds
/public/characters /data/default-user/characters
/public/chats /data/default-user/chats
/public/context /data/default-user/context
/public/scripts/extensions/third-party /data/default-user/extensions
/public/group chats /data/default-user/group chats
/public/groups /data/default-user/groups
/public/instruct /data/default-user/instruct
/public/KoboldAI Settings /data/default-user/KoboldAI Settings
/public/movingUI /data/default-user/movingUI
/public/NovelAI Settings /data/default-user/NovelAI Settings
/public/OpenAI Settings /data/default-user/OpenAI Settings
/public/QuickReplies /data/default-user/QuickReplies
/public/TextGen Settings /data/default-user/TextGen Settings
/public/themes /data/default-user/themes
/public/worlds /data/default-user/worlds
/default/content/content.log /data/default-user/content.log

# 用户

1.12.0 添加了一个(完全可选的)在同一服务器上创建多用户设置的能力,允许多个用户同时使用自己完全隔离的 SillyTavern 实例。用户帐户也可以通过密码保护以提供额外的隐私层。

请参阅用户文档以获取更多信息。