215 lines
5.8 KiB
Markdown
215 lines
5.8 KiB
Markdown
# 消息系统脚本索引
|
||
|
||
本文档列出了所有可用的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控制台的错误日志
|
||
|
||
---
|
||
|
||
**提示**: 建议将本文档保存为书签,方便随时查阅各个脚本的用途和使用方法。
|