Initial commit of akmon project

This commit is contained in:
2026-01-20 08:04:15 +08:00
commit 77a2bab985
1309 changed files with 343305 additions and 0 deletions

214
SCRIPT_INDEX.md Normal file
View File

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