5.8 KiB
5.8 KiB
消息系统脚本索引
本文档列出了所有可用的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用户可以操作所有数据
- ⚠️ 严禁在生产环境使用开发模式
- 📝 开发完成后记得切换到生产权限模式
生产环境最佳实践
- 🔒 始终使用基于角色的权限控制
- 🛡️ 定期运行权限健康检查
- 📊 监控权限使用情况
- 🔄 建立权限变更审核流程
脚本执行顺序
- 首次部署:
deploy_one_click.sql - 权限管理:
permission_manager.sql - 模式切换: 使用管理函数或专用脚本
- 故障修复: 按需使用quick_fix_*脚本
📞 获取帮助
如果遇到问题,请:
- 先运行
SELECT * FROM public.check_permission_health();检查系统状态 - 查看相关脚本的注释和说明
- 使用
complete_cleanup.sql清理后重新部署 - 检查Supabase控制台的错误日志
提示: 建议将本文档保存为书签,方便随时查阅各个脚本的用途和使用方法。