# 消息系统脚本索引 本文档列出了所有可用的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` | 测试消息结构 | 验证 | ## 🚀 使用指南 ### 新项目部署 ```mermaid graph TD A[新项目] --> B[deploy_one_click.sql] B --> C[开发模式启用] C --> D[开始开发] D --> E{准备上线?} E -->|是| F[restore_normal_permissions.sql] E -->|否| G[继续开发] F --> H[生产环境] ``` ### 权限模式切换 ```mermaid 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 ``` ## 📝 常用命令组合 ### 快速开始(推荐) ```sql -- 1. 一键部署 \i deploy_one_click.sql -- 2. 查看状态 SELECT * FROM public.permission_dashboard; -- 3. 测试功能 SELECT quick_send('测试消息', '这是一条测试消息'); SELECT * FROM message_stats(); ``` ### 开发环境设置 ```sql -- 1. 基础结构 \i message_system.sql -- 2. 开发权限 \i dev_open_permissions.sql -- 3. 测试数据 \i insert_test_message_data.sql -- 4. 权限管理器 \i permission_manager.sql ``` ### 生产环境部署 ```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(); ``` ### 权限模式切换 ```sql -- 切换到开发模式 SELECT public.switch_to_dev_mode(); -- 切换到生产模式 SELECT public.switch_to_prod_mode(); \i restore_normal_permissions.sql -- 查看当前模式 SELECT * FROM public.get_permission_mode(); ``` ### 故障排除 ```sql -- 清理所有内容重新开始 \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控制台的错误日志 --- **提示**: 建议将本文档保存为书签,方便随时查阅各个脚本的用途和使用方法。