From 9a5564b3cffa373c7bf606c8eaa095a6b4c807b1 Mon Sep 17 00:00:00 2001 From: katelya Date: Thu, 4 Sep 2025 22:56:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=92=8C=E5=86=85=E5=AE=B9=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E6=88=90=E4=BA=BA=E5=86=85=E5=AE=B9=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=85=8D=E7=BD=AE=E8=AF=B4=E6=98=8E=E6=B8=85?= =?UTF-8?q?=E6=99=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLOUDFLARE_PAGES_ADULT_FILTER.md | 9 +++++++ D1_MIGRATION.md | 46 ++++++++++++++++---------------- README.md | 16 ++++++----- 3 files changed, 42 insertions(+), 29 deletions(-) diff --git a/CLOUDFLARE_PAGES_ADULT_FILTER.md b/CLOUDFLARE_PAGES_ADULT_FILTER.md index c050a84..660d08d 100644 --- a/CLOUDFLARE_PAGES_ADULT_FILTER.md +++ b/CLOUDFLARE_PAGES_ADULT_FILTER.md @@ -20,6 +20,7 @@ wrangler d1 create katelyatv-db ``` 记录输出的数据库 ID,类似: + ``` ✅ Successfully created DB 'katelyatv-db' in region APAC Created your database using D1's new storage backend. @@ -112,11 +113,13 @@ wrangler pages deploy .vercel/output/static --project-name katelyatv ### 错误:"获取用户设置失败" **可能原因**: + - 未配置 D1 数据库 - `NEXT_PUBLIC_STORAGE_TYPE` 未设置为 `d1` - 数据库中缺少 `user_settings` 表 **解决方案**: + 1. 检查环境变量配置 2. 验证 D1 数据库绑定 3. 执行数据库迁移: @@ -127,10 +130,12 @@ wrangler pages deploy .vercel/output/static --project-name katelyatv ### 错误:D1 数据库连接失败 **可能原因**: + - wrangler.toml 中的数据库配置错误 - Cloudflare Pages 中的 D1 绑定未正确配置 **解决方案**: + 1. 验证 `wrangler.toml` 中的 database_id 是否正确 2. 在 Cloudflare Pages Dashboard 中检查 Functions → D1 database bindings 3. 确保绑定的变量名为 `DB` @@ -138,10 +143,12 @@ wrangler pages deploy .vercel/output/static --project-name katelyatv ### 错误:构建失败 **可能原因**: + - Node.js 兼容性问题 - 依赖安装失败 **解决方案**: + 1. 确保启用了 `nodejs_compat` 兼容性标志 2. 检查构建命令是否正确 3. 查看构建日志中的具体错误信息 @@ -167,11 +174,13 @@ wrangler pages deploy .vercel/output/static --project-name katelyatv 当项目更新包含数据库结构变更时: 1. **备份数据**: + ```bash wrangler d1 export katelyatv-db --output backup.sql ``` 2. **执行迁移**: + ```bash wrangler d1 execute katelyatv-db --file=D1_MIGRATION.md的SQL脚本 ``` diff --git a/D1_MIGRATION.md b/D1_MIGRATION.md index bd63312..a546423 100644 --- a/D1_MIGRATION.md +++ b/D1_MIGRATION.md @@ -96,30 +96,30 @@ wrangler d1 execute your-database-name --file=./scripts/d1-init.sql ### user_settings 表字段 -| 字段名 | 类型 | 默认值 | 说明 | -| ----------------------- | -------- | ------- | ------------------------- | -| `id` | INTEGER | 自增 | 主键 | -| `user_id` | INTEGER | 无 | 用户ID,关联users表 | -| `username` | TEXT | 无 | 用户名 | -| `filter_adult_content` | BOOLEAN | 1(true) | 成人内容过滤开关 | -| `theme` | TEXT | 'auto' | 界面主题设置 | -| `language` | TEXT | 'zh-CN' | 语言设置 | -| `auto_play` | BOOLEAN | 1(true) | 自动播放开关 | -| `video_quality` | TEXT | 'auto' | 视频质量偏好 | -| `created_at` | DATETIME | 当前时间 | 创建时间 | -| `updated_at` | DATETIME | 当前时间 | 更新时间 | +| 字段名 | 类型 | 默认值 | 说明 | +| ---------------------- | -------- | -------- | ---------------------- | +| `id` | INTEGER | 自增 | 主键 | +| `user_id` | INTEGER | 无 | 用户 ID,关联 users 表 | +| `username` | TEXT | 无 | 用户名 | +| `filter_adult_content` | BOOLEAN | 1(true) | 成人内容过滤开关 | +| `theme` | TEXT | 'auto' | 界面主题设置 | +| `language` | TEXT | 'zh-CN' | 语言设置 | +| `auto_play` | BOOLEAN | 1(true) | 自动播放开关 | +| `video_quality` | TEXT | 'auto' | 视频质量偏好 | +| `created_at` | DATETIME | 当前时间 | 创建时间 | +| `updated_at` | DATETIME | 当前时间 | 更新时间 | ### skip_configs 表字段 -| 字段名 | 类型 | 默认值 | 说明 | -| ------------- | -------- | -------- | ------------------------- | -| `id` | INTEGER | 自增 | 主键 | -| `user_id` | INTEGER | 无 | 用户ID,关联users表 | -| `config_key` | TEXT | 无 | 配置键,格式:`source+video_id` | -| `start_time` | INTEGER | 0 | 跳过开始时间(秒) | -| `end_time` | INTEGER | 0 | 跳过结束时间(秒) | -| `created_at` | DATETIME | 当前时间 | 创建时间 | -| `updated_at` | DATETIME | 当前时间 | 更新时间 | +| 字段名 | 类型 | 默认值 | 说明 | +| ------------ | -------- | -------- | ------------------------------- | +| `id` | INTEGER | 自增 | 主键 | +| `user_id` | INTEGER | 无 | 用户 ID,关联 users 表 | +| `config_key` | TEXT | 无 | 配置键,格式:`source+video_id` | +| `start_time` | INTEGER | 0 | 跳过开始时间(秒) | +| `end_time` | INTEGER | 0 | 跳过结束时间(秒) | +| `created_at` | DATETIME | 当前时间 | 创建时间 | +| `updated_at` | DATETIME | 当前时间 | 更新时间 | ## ✅ 迁移验证 @@ -144,7 +144,7 @@ PRAGMA table_info(skip_configs); ### 1. "获取用户设置失败" 错误 **原因**:缺少 `user_settings` 表 -**解决**:执行上述迁移SQL,确保user_settings表已创建 +**解决**:执行上述迁移 SQL,确保 user_settings 表已创建 ### 2. "表已存在" 错误 @@ -153,7 +153,7 @@ PRAGMA table_info(skip_configs); ### 3. 外键约束错误 -**原因**:users表不存在或结构不匹配 +**原因**:users 表不存在或结构不匹配 **解决**:确保先运行完整的 `./scripts/d1-init.sql` 初始化脚本 ## 📞 需要帮助? diff --git a/README.md b/README.md index 8b784ed..36f33f3 100644 --- a/README.md +++ b/README.md @@ -600,27 +600,30 @@ docker run -d \ 成人内容过滤功能需要服务器端存储支持,**不能使用 `localstorage` 存储类型**。 -| 部署平台 | 推荐存储类型 | 配置要求 | -| -------------- | ------------ | ---------------------- | -| Docker | `redis` / `kvrocks` | 配置 Redis/Kvrocks 服务器 | -| Vercel | `upstash` | 配置 Upstash Redis | -| Cloudflare Pages | `d1` | 配置 D1 数据库 | +| 部署平台 | 推荐存储类型 | 配置要求 | +| ---------------- | ------------------- | ------------------------- | +| Docker | `redis` / `kvrocks` | 配置 Redis/Kvrocks 服务器 | +| Vercel | `upstash` | 配置 Upstash Redis | +| Cloudflare Pages | `d1` | 配置 D1 数据库 | **Cloudflare Pages 特殊配置**: 如果你使用 Cloudflare Pages 部署,**必须配置 D1 数据库**才能使用成人内容过滤功能: 1. **创建 D1 数据库**: + ```bash wrangler d1 create katelyatv-db ``` 2. **初始化数据库表**: + ```bash wrangler d1 execute katelyatv-db --file=./scripts/d1-init.sql ``` 3. **配置环境变量**: + ```bash NEXT_PUBLIC_STORAGE_TYPE=d1 ``` @@ -636,7 +639,8 @@ docker run -d \ **故障排除**: - ❌ **错误**:"获取用户设置失败" - - **原因**:使用了 `localstorage` 存储类型,服务器端API无法访问 + + - **原因**:使用了 `localstorage` 存储类型,服务器端 API 无法访问 - **解决**:按上述要求配置数据库存储 - ❌ **错误**:过滤开关无法保存