Files
app/wei_ai_app/supabase/README.md
2026-01-28 20:28:38 +08:00

121 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Supabase 数据库初始化指南
本文档说明如何将 SQL 脚本导入到本地 Docker 部署的 Supabase 中。
## 准备工作
确保你的 Supabase Docker 容器正在运行:
```bash
docker ps --filter "name=supabase"
```
## 方法一:通过 Supabase Studio (推荐)
1. **打开 Supabase Studio**
在浏览器中访问http://localhost:54323
> 注意:如果是通过 Kong 代理,可能是 http://localhost:8000
2. **进入 SQL 编辑器**
点击左侧菜单的 **SQL Editor**
3. **执行建表脚本**
- 新建一个 Query
- 复制 `migrations/001_create_tables.sql` 的内容
- 点击 **Run** 执行
4. **执行种子数据脚本**
- 新建另一个 Query
- 复制 `migrations/002_seed_data.sql` 的内容
- 点击 **Run** 执行
5. **创建 Storage Bucket**
- 点击左侧菜单的 **Storage**
- 点击 **New bucket**
- 输入名称:`avatars`
- 勾选 **Public bucket**
- 点击 **Create bucket**
## 方法二:通过命令行 (psql)
1. **连接到数据库**
```bash
# 获取数据库连接信息
docker exec supabase-db env | grep POSTGRES
# 连接数据库 (默认密码在 .env 文件中)
docker exec -it supabase-db psql -U postgres -d postgres
```
2. **执行 SQL 脚本**
```bash
# 从容器外部执行
cat supabase/migrations/001_create_tables.sql | docker exec -i supabase-db psql -U postgres -d postgres
cat supabase/migrations/002_seed_data.sql | docker exec -i supabase-db psql -U postgres -d postgres
```
## 方法三:通过 Supabase API
```bash
# 设置环境变量
SUPABASE_URL="http://localhost:8000"
SERVICE_KEY="你的 service_role key"
# 创建 Storage bucket
curl -X POST "$SUPABASE_URL/storage/v1/bucket" \
-H "Authorization: Bearer $SERVICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "avatars",
"name": "avatars",
"public": true,
"file_size_limit": 5242880,
"allowed_mime_types": ["image/png", "image/jpeg", "image/webp", "image/gif"]
}'
```
## 验证数据
初始化完成后,可以在 Supabase Studio 中验证:
1. **Table Editor** - 查看表结构和数据
2. **API Docs** - 查看自动生成的 API 文档
### 表结构说明
| 表名 | 说明 |
|------|------|
| `categories` | 分类筛选,用于 Discovery 页面 |
| `tags` | 角色标签 |
| `characters` | AI 角色信息,包含 AI 配置 |
| `character_tags` | 角色-标签关联 |
| `characters_with_tags` | 视图,包含完整的角色信息和标签 |
### 初始数据
- 7 个分类(全部、温柔治愈、主导强势、反差/猎奇、语音陪聊、场景扮演、会员限定)
- 11 个标签
- 4 个示例角色Eva-09, Commander V, Yuki, Secret X
## 常见问题
### Q: 执行 SQL 时提示权限不足?
确保使用 `postgres` 用户或具有足够权限的用户执行。
### Q: 视图查询返回空数据?
检查 `characters` 表中的 `is_active` 字段是否为 `true`
### Q: Storage 上传失败?
确保已创建 `avatars` bucket 并设置为公开访问。