1.12.0 迁移指南
SillyTavern 1.12.0(代号“Neo Server”更新)包含若干关键变更,可能会影响你使用 SillyTavern 的方式。
本指南将帮助你为这次更新做好准备,并提供一些进一步的指引。
数据存储更新
1.12.0 改变了 SillyTavern 处理用户数据的方式。
此前,所有持久化数据都与前端部分一起存放在 /public 目录中,这既会造成混乱和潜在故障点,也使容器化和系统级应用安装变得相当棘手。
改动了什么?
/public 中所有持久化信息(如设置和聊天记录,完整列表见下文)都被移动到了一个路径可配置的独立目录中,使其具备可移植性,并与 Web 服务器本身相互独立。当出于兼容性目的需要时(例如托管扩展、全尺寸角色卡、用户上传的图片等),系统已设置智能重定向,可自动从数据目录中托管用户文件。
设置数据根目录
你可以通过 config.yaml,或使用 --dataRoot 控制台参数启动服务器,来为数据根目录提供一个绝对路径或相对路径(相对于 ST 仓库目录)。
YAML 示例
# -- DATA CONFIGURATION --
# Root directory for user data storage
dataRoot: C:\Users\Harry\Documents\ST-Data
控制台示例
node server.js --dataRoot="/Users/harry/ST-Data"
# OR
npm run start -- --dataRoot="/Users/harry/ST-Data"
默认的数据根目录路径为 ./data,即 SillyTavern 仓库中的 data 目录。
注意
数据根目录路径必须是完整的绝对路径或完整的相对路径。你_不能_使用 ~ 或 %APP_DATA% 这类路径简写,因为它们是由 shell 解析的,而不是由操作系统解析的。
迁移
重要! 开始之前
- 仅当你想把 dataRoot 从默认位置移动时才需要操作,否则跳过本部分。 在拉取更新后首次运行服务器_之前_设置数据根目录。运行
npm install以便config.yaml填入新值,或者传递控制台参数。 - 所有数据都将迁移到
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。 重新构建容器并启动。
注意
/public 目录与 config 卷之间的软链接已不再需要,也不再构建进 Docker 容器中!
需要迁移哪些内容?
以下文件和目录需要进行数据迁移。假设使用默认配置,下表提供了迁移前后的路径对照。
用户
1.12.0 新增了一项(完全可选的)能力,可以在同一台服务器上创建多用户环境,允许多个用户使用各自完全隔离的 SillyTavern 实例,甚至可以同时使用。用户账户还可以通过密码保护,从而提供额外一层隐私保护。
更多信息请参阅 用户 文档。