Files
akmon/SCRIPT_INDEX.md
2026-01-20 08:04:15 +08:00

5.8 KiB
Raw Blame History

消息系统脚本索引

本文档列出了所有可用的SQL脚本及其用途帮助开发者快速找到需要的功能。

📋 脚本分类

🏗️ 核心部署脚本

脚本名称 用途 适用场景 执行顺序
deploy_one_click.sql 一键部署整个消息系统 新项目快速启动 1
message_system.sql 核心数据库表结构 手动分步部署 1
supabase_auth_complete_setup.sql 完整用户角色管理系统 生产环境 2

🔐 权限管理脚本

脚本名称 用途 权限模式 环境
dev_open_permissions.sql 快速开发权限设置 🔓 开放 开发/测试
open_all_message_permissions.sql 完整开放权限设置 🔓 开放 开发/测试
message_permissions_complete.sql 完整生产权限策略 🔒 严格 生产环境
restore_normal_permissions.sql 从开发模式恢复生产权限 🔒 严格 生产环境
permission_manager.sql 权限管理器和状态监控 🛠️ 管理 所有环境

🔧 修复和维护脚本

脚本名称 用途 使用时机
complete_cleanup.sql 完整系统清理 重新部署前
quick_fix_triggers.sql 修复触发器冲突 部署错误时
quick_fix_policies.sql 修复策略冲突 部署错误时
quick_fix_functions.sql 修复函数冲突 部署错误时
quick_fix_rls_recursion.sql 修复RLS递归错误 权限错误时

📊 数据和测试脚本

脚本名称 用途 数据量
insert_test_message_data.sql 插入测试数据 中等
generate_message_data.sql 生成大量测试数据 大量
test_message_structure.sql 测试消息结构 验证

🚀 使用指南

新项目部署

graph TD
    A[新项目] --> B[deploy_one_click.sql]
    B --> C[开发模式启用]
    C --> D[开始开发]
    D --> E{准备上线?}
    E -->|是| F[restore_normal_permissions.sql]
    E -->|否| G[继续开发]
    F --> H[生产环境]

权限模式切换

graph LR
    A[开发模式] -->|deploy_one_click.sql| B[开放权限]
    A -->|dev_open_permissions.sql| B
    B -->|restore_normal_permissions.sql| C[生产权限]
    C -->|permission_manager.sql| D[智能管理]
    D -->|switch_to_dev_mode| B
    D -->|switch_to_prod_mode| C

📝 常用命令组合

快速开始(推荐)

-- 1. 一键部署
\i deploy_one_click.sql

-- 2. 查看状态
SELECT * FROM public.permission_dashboard;

-- 3. 测试功能
SELECT quick_send('测试消息', '这是一条测试消息');
SELECT * FROM message_stats();

开发环境设置

-- 1. 基础结构
\i message_system.sql

-- 2. 开发权限
\i dev_open_permissions.sql

-- 3. 测试数据
\i insert_test_message_data.sql

-- 4. 权限管理器
\i permission_manager.sql

生产环境部署

-- 1. 基础结构
\i message_system.sql

-- 2. 用户角色系统
\i supabase_auth_complete_setup.sql

-- 3. 严格权限策略
\i message_permissions_complete.sql

-- 4. 权限管理器
\i permission_manager.sql

-- 5. 验证部署
SELECT * FROM public.check_permission_health();

权限模式切换

-- 切换到开发模式
SELECT public.switch_to_dev_mode();

-- 切换到生产模式
SELECT public.switch_to_prod_mode();
\i restore_normal_permissions.sql

-- 查看当前模式
SELECT * FROM public.get_permission_mode();

故障排除

-- 清理所有内容重新开始
\i complete_cleanup.sql
\i deploy_one_click.sql

-- 修复特定错误
\i quick_fix_triggers.sql    -- 触发器冲突
\i quick_fix_policies.sql    -- 策略冲突
\i quick_fix_functions.sql   -- 函数冲突
\i quick_fix_rls_recursion.sql -- RLS递归

-- 权限健康检查
SELECT * FROM public.check_permission_health();

🔍 脚本内容速览

核心功能脚本

  • deploy_one_click.sql: 完整的一键部署解决方案

    • 扩展检查和创建
    • 基础表结构创建
    • 开发权限模式部署
    • 便捷函数创建
    • 部署验证和报告
  • permission_manager.sql: 智能权限管理系统

    • get_permission_mode() - 查看当前权限模式
    • switch_to_dev_mode() - 切换到开发模式
    • switch_to_prod_mode() - 切换到生产模式
    • check_permission_health() - 权限健康检查

权限模式脚本

  • dev_open_permissions.sql: 开发友好的权限设置

    • 自动清理限制性策略
    • 创建全开放权限
    • 提供便捷开发函数
  • restore_normal_permissions.sql: 生产环境权限恢复

    • 清理开发模式策略
    • 恢复基于角色的权限控制
    • 最小权限原则

⚠️ 重要提醒

开发模式注意事项

  • 🔓 开发模式权限非常宽松所有authenticated用户可以操作所有数据
  • ⚠️ 严禁在生产环境使用开发模式
  • 📝 开发完成后记得切换到生产权限模式

生产环境最佳实践

  • 🔒 始终使用基于角色的权限控制
  • 🛡️ 定期运行权限健康检查
  • 📊 监控权限使用情况
  • 🔄 建立权限变更审核流程

脚本执行顺序

  1. 首次部署: deploy_one_click.sql
  2. 权限管理: permission_manager.sql
  3. 模式切换: 使用管理函数或专用脚本
  4. 故障修复: 按需使用quick_fix_*脚本

📞 获取帮助

如果遇到问题,请:

  1. 先运行 SELECT * FROM public.check_permission_health(); 检查系统状态
  2. 查看相关脚本的注释和说明
  3. 使用 complete_cleanup.sql 清理后重新部署
  4. 检查Supabase控制台的错误日志

提示: 建议将本文档保存为书签,方便随时查阅各个脚本的用途和使用方法。