# NAS切换清单 此清单是最终人工确认前的准备资产,不授权当前任务停止或替换正式容器。 ## 切换前阻断项 - [ ] NAS或预发布机实际执行`docker compose config`与`docker compose build`。 - [ ] 验证容器以非root、只读根文件系统启动,`/app/data`可写,健康检查稳定。 - [ ] 验证容器重启后账号、行情、自选、复盘、会员、模型、问天和选股记录不丢失。 - [ ] 在NAS受控目录完成数据库、环境密钥和私有Skill整套备份,并做一次独立恢复。 - [ ] 保持`APP_PUBLISH_PORT=8876`启动新容器,完成真实数据的日间/夜间、1080P/4K/390px抽验。 - [ ] 记录实际`APP_IMAGE`标签,确认该标签可在不重新构建的情况下用于回退演练。 - [ ] 用户明确确认最终切换窗口。 不使用 SSH 的 NAS 按 [Portainer 网页端预检](../portainer-preflight.md)完成以上 Docker 阻断项。 ## 切换步骤 1. 记录旧镜像、容器配置、端口和旧数据库校验和,创建最终一致性备份。 2. 暂停旧系统写入,不删除旧容器和数据卷。 3. 对最终只读旧库运行`tools.legacy_migration`到全新目标,核对报告和外键完整性。 4. 用固定`APP_ENCRYPTION_KEY`和新数据卷启动新容器临时端口。 5. 抽验真实账号登录、共享快照、私有记录、会员/模型、问天、选股和LLM一次成功调用。 6. 切换反向代理或宿主端口;观察健康、5xx、数据库写入和后台任务至少一个完整刷新周期。 7. 只有观察期通过后才归档旧容器;旧数据库和旧镜像按回退周期保留。 旧实现的精确保留、删除和验收边界见 [旧实现清理方案](legacy-cleanup-plan.md)。正式切换确认 不自动授权删除旧实现,清理仍需单独确认。 ## 回退条件与动作 出现登录失败、私有数据错绑、数据库完整性失败、关键行情不可读、后台任务持续失败或无法恢复的5xx时立即回退。 1. 停止新容器写入并保存故障数据库副本和日志。 2. 将流量切回旧容器;不要对新数据库自动执行migration降级。 3. 若需用旧镜像读取新时期数据,只能恢复升级前与旧镜像匹配的整套备份。 4. 修复后重新从最新只读旧库执行迁移,不在失败目标库上手工改表。 ## 当前状态 代码、真实旧库副本迁移、备份恢复、SPA生产形态、性能、安全和全量浏览器回归均已完成。 本机已对真实v7迁移库完成在线备份、全新目录恢复、独立生产进程启动和重启持久化抽验;源库与恢复库的关键表计数一致。 本机没有Docker,以上6个容器切换前阻断项仍需在NAS/预发布环境执行;正式容器保持不变,非容器演练不得作为Docker验收证据。