如何从v1平滑升级到v2:EPGStation数据迁移避坑指南

📅 2026/8/27 17:25:39
如何从v1平滑升级到v2:EPGStation数据迁移避坑指南
如何从v1平滑升级到v2EPGStation数据迁移避坑指南【免费下载链接】EPGStationMirakurun を使用した録画管理ソフト项目地址: https://gitcode.com/gh_mirrors/ep/EPGStationEPGStation 是一款基于 Mirakurun 的电视节目表查询与自动录制管理软件。如果你还在使用 v1 版本想要从 v1 平滑升级到 v2本文就是一份数据迁移避坑指南哪些数据能带走、哪些会丢、7 个迁移步骤、以及最容易踩的 5 个坑一次讲清楚。迁移前先搞清楚哪些数据能带走哪些会丢 根据官方迁移文档 doc/v1migrate.md 和迁移工具源码 src/V1MigrationTool.tsv1 → v2 的数据迁移范围如下数据类型是否迁移说明自动录制规则✅关键字、分类、时间段、编码选项等完整保留已录制节目信息✅节目名、分类、文件路径、缩略图、编码文件录制历史✅已录完的节目历史记录预约信息❌手动预约、被规则排除的预约不会迁移需重新手动预约掉帧(drop)日志❌不迁移⚠️避坑提示迁移完成后发现预约列表是空的不是 Bug。v2 会基于迁移过来的规则重新生成预约手动预约需要自己补录。七步走从v1到v2的完整迁移流程第1步把v1环境更新到最新版本先在 v1 环境中拉取最新代码并重启一次确保数据库处于最新状态$ git pull $ git checkout v1 $ npm install --no-save $ npm run build $ npm start # 启动完成后按 Ctrl C 结束第2步备份v1数据库在 v1 环境执行备份命令生成用于迁移的 JSON 备份文件$ npm run backup FILENAME对应的备份工具位于 src/DBTools.ts。第3步搭建v2环境切换到master分支按照官方搭建手册构建 v2 环境Linux / macOSdoc/linux-setup.mdWindowsdoc/windows-setup.md第4步对齐v1与v2的配置关键步骤v1 使用 JSON 配置config/*.jsonv2 改用 YAML 配置config/config.yml。两者的录制目录、缩略图目录、编码列表必须一一对应否则迁移后的文件路径会失效录制目录v1 的recorded字符串 → v2 的recorded列表注意 v2 多了name父目录字段缩略图目录v1 的thumbnail→ v2 的thumbnail编码列表v2 的 encode 项新增了rate字段且数量必须不少于 v1原因见下方避坑点 3第5步清理v1残留数据$ rm -rf data $ git checkout data $ rm -f config/*.json如果你用 MySQL 等外部数据库担心误删也可以跳过这步但SQLite 用户强烈建议执行避坑点 1。第6步运行v1migrate导入数据$ npm run v1migrate FILENAME该命令对应 src/V1MigrationTool.ts会依次导入规则 → 录制节目 → 编码视频文件 → 录制历史最后关闭数据库连接并输出finish。第7步可选重新注册开机自启v2 的启动脚本路径发生了变化。如果你之前配置了 pm2 等服务自启需要按 doc/linux-setup.md 或 doc/windows-setup.md 中的说明删除旧服务并重新注册。五大常见坑点与排查方法坑1SQLite 用户 v1migrate 卡死在 check db现象第 5 步没执行清理npm run v1migrate一直显示check db不退出。原因v1 残留的 data 目录与 v2 数据库配置冲突导致连接检查无法通过。解决执行第 5 步的清理命令后重试。坑2录制文件在v2界面不见了原因config.yml 中的recorded目录与 v1 不一致迁移写入的是旧路径。解决修改 config.yml 的 recorded 配置使其指向真实的录制文件目录后重启。坑3迁移报 encodeOptionError 直接中断原因v1 规则中的编码选项是按序号引用的如 mode1: 0迁移工具会在 v2 的 encode 列表中按序号查找名称列表项数不够就会抛出EncodeOptionError见 src/V1MigrationTool.ts 中的getEncodeOptionName。解决保证 v2 的 encode 列表项数 ≥ v1且顺序一致。坑4迁移后预约列表为空这不是错误v1 的手动预约和被规则排除的预约不随数据迁移见 src/V1MigrationTool.ts 中仅导入 rules/recorded/history 的逻辑。规则迁移完成后v2 会自动根据规则重新生成自动预约。坑5忘记迁移备份文件npm run v1migrate需要的是第 2 步生成的备份文件而不是 v1 的数据库本身。跨数据库迁移如 v1 用 SQLite、v2 用 MySQL正因此被官方支持——备份文件与数据库类型无关。迁移后验证清单迁移完成后建议在 Web 界面逐项确认规则页面规则数量与 v1 一致关键字/分类正确已录制页面节目列表、缩略图、文件路径正常可播放录制历史页面历史记录完整预约页面规则已自动生成新的自动预约手动补录 v1 中需要保留的手动预约完成以上检查你的 EPGStation 就完成了从 v1 到 v2 的平滑升级——规则、节目库、历史记录一个不少剩下的只是把手动预约补回来。【免费下载链接】EPGStationMirakurun を使用した録画管理ソフト项目地址: https://gitcode.com/gh_mirrors/ep/EPGStation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考