Files
app/wei_ai_app/supabase

Supabase 数据库初始化指南

本文档说明如何将 SQL 脚本导入到本地 Docker 部署的 Supabase 中。

准备工作

确保你的 Supabase Docker 容器正在运行:

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. 连接到数据库
# 获取数据库连接信息
docker exec supabase-db env | grep POSTGRES

# 连接数据库 (默认密码在 .env 文件中)
docker exec -it supabase-db psql -U postgres -d postgres
  1. 执行 SQL 脚本
# 从容器外部执行
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

# 设置环境变量
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 并设置为公开访问。