unis_crm/sql/README.md

194 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# SQL Scripts
当前项目的数据库脚本按“一个主初始化脚本 + 一组正式增量脚本 + 一组历史归档脚本”的方式整理:
- 主初始化脚本:`sql/init_full_pg17.sql`
- 当前版本合并升级脚本:`sql/upgrade_dashboard_analytics_and_opportunity_schema_pg17.sql`
- 2026-05-25 日历功能升级脚本:`sql/20260525_日历.sql`
- 首页经营分析生产升级脚本:`sql/upgrade_dashboard_analytics_prod_pg17.sql`
- 经营分析卡片历史展示配置修正脚本:`sql/upgrade_dashboard_analytics_card_display_config_pg17.sql`
- 商机实际签约金额字段升级脚本:`sql/upgrade_opportunity_actual_signed_amount_pg17.sql`
- 2026-07-02 商机业绩归属地与数据授权区域范围升级脚本:`sql/20260702_opportunity_ownership_and_scope_pg17.sql`
- 日报提醒功能初始化脚本:`sql/init_report_reminder_pg17.sql`
- 2026-06-24 CRM 增量升级脚本:`sql/20260624_report_reminder_and_work_report_upgrade_pg17.sql`
- 归属人转移权限初始化脚本:`sql/init_owner_transfer_permissions_pg17.sql`
- MCP 工具字段注释补齐脚本:`sql/20260916_mcp_column_comments_pg17.sql`
- 一次性修复/导入工具脚本:
- `sql/import_oms_existing_opportunities_pg17.sql`
- 历史迁移与修数脚本:`sql/archive/*.sql`
## 推荐用法
### 1. 全新初始化数据库
直接执行主脚本:
```bash
psql -d your_database -f sql/init_full_pg17.sql
```
这份脚本已经吸收了目前项目里所有必要的结构兼容调整,适合作为当前唯一推荐的 PostgreSQL 17 初始化入口。
### 2. 老环境功能补齐
如果是已有生产环境,需要补本次首页相关能力,请执行:
```bash
psql -d your_database -f sql/upgrade_dashboard_analytics_prod_pg17.sql
```
这份脚本会补:
- `dashboard_analytics_panel_config`
- `dashboard_analytics_card_config`
- 首页卡片相关权限
- `crm_opportunity.latest_progress`
- `crm_opportunity.next_plan`
- `crm_channel_expansion.certification_level` 注释修正
- 平台菜单权限纠偏
不会写入默认业务卡片,也不会创建目标值业务表。
上线执行顺序、验收项和风险说明见:
- `docs/首页相关能力SQL发布说明.md`
如果老环境需要补“日报提醒”功能,请执行:
```bash
psql -d your_database -f sql/init_report_reminder_pg17.sql
```
如果老环境需要上线 2026-06-24 本次未提交改动对应的数据库升级,请执行:
```bash
psql -d your_database -f sql/20260624_report_reminder_and_work_report_upgrade_pg17.sql
```
如果老环境需要补“归属人转移”权限,请执行:
```bash
psql -d your_database -f sql/init_owner_transfer_permissions_pg17.sql
```
如果老环境需要补“商机实际签约金额”字段,请执行:
```bash
psql -d your_database -f sql/upgrade_opportunity_actual_signed_amount_pg17.sql
```
如果老环境需要补“是否 POC 测试项目”字段,请执行:
```bash
psql -d your_database -f sql/upgrade_opportunity_is_poc_pg17.sql
```
如果老环境需要补“商机业绩归属地 + 数据授权区域范围”能力,请执行:
```bash
psql -d your_database -f sql/20260702_opportunity_ownership_and_scope_pg17.sql
```
如果希望直接按当前版本代码一次补齐“经营分析最新结构 + 商机快照字段 + 实际签约金额字段”,可直接执行合并脚本:
```bash
psql -d your_database -f sql/upgrade_dashboard_analytics_and_opportunity_schema_pg17.sql
```
如果本次只需要上线“日历同步”能力,请执行:
```bash
psql -d your_database -f sql/20260525_日历.sql
```
如果老环境需要补 MCP 工具所检索组织/角色字段的数据库注释sys_org、sys_role、sys_user_role请执行
```bash
psql -d your_database -f sql/20260916_mcp_column_comments_pg17.sql
```
如果需要一次性修正历史经营分析卡片配置,避免旧饼图/环形图/漏斗图升级后标签缺失、旧中文图表预设值无法识别,请执行:
```bash
psql -d your_database -f sql/upgrade_dashboard_analytics_card_display_config_pg17.sql
```
### 3. 一次性工具脚本
- `sql/import_oms_existing_opportunities_pg17.sql`
用于导入指定批次的 OMS 存量商机数据,不属于常规部署脚本。
历史变更脚本保存在:
- `sql/archive/alter_*.sql`
- `sql/archive/fix_*.sql`
- `sql/archive/init_pg17.sql`
这些文件仅用于:
- 追溯某次字段演进
- 排查老环境与当前结构差异
- 定位某次修数逻辑来源
正常部署时,不建议按时间顺序逐个执行 `archive` 里的脚本。
## 当前目录说明
- `sql/init_full_pg17.sql`
当前项目的完整初始化脚本,也是唯一推荐执行的入口。
- `sql/upgrade_dashboard_analytics_prod_pg17.sql`
老环境补齐本次首页相关能力时使用的正式增量脚本,已合并首页权限、商机快照字段升级和平台菜单权限纠偏。
- `sql/upgrade_dashboard_analytics_and_opportunity_schema_pg17.sql`
当前版本推荐的结构合并升级脚本,适用于老环境一次补齐“经营分析配置最新表结构”和“商机快照/实际签约金额字段”。
- `sql/20260525_日历.sql`
本次“日历同步”功能专用升级脚本,用于老环境创建并补齐 `business_calendar_day` 表结构。
- `sql/upgrade_dashboard_analytics_card_display_config_pg17.sql`
经营分析卡片历史展示配置修正脚本,用于清洗旧 `display_text_config` 中的中文图表预设值,并补齐老饼图/环形图/漏斗图的标签显示配置。
- `sql/upgrade_opportunity_actual_signed_amount_pg17.sql`
老环境补齐“商机实际签约金额”字段时使用的正式增量脚本。
- `sql/upgrade_opportunity_is_poc_pg17.sql`
老环境补齐“是否 POC 测试项目”字段时使用的正式增量脚本。
- `sql/20260702_opportunity_ownership_and_scope_pg17.sql`
老环境补齐“商机业绩归属地 + 数据授权区域范围”能力时使用的正式增量脚本。
- `sql/init_report_reminder_pg17.sql`
老环境补齐“日报提醒”功能时使用的正式增量脚本,已包含表结构与权限。
- `sql/20260624_report_reminder_and_work_report_upgrade_pg17.sql`
2026-06-24 本次未提交改动对应的正式增量脚本,包含日报 to-user 消息表、消息已读追踪、企业微信消息日志序列修复、日报提交后通知规则字段。
- `sql/init_owner_transfer_permissions_pg17.sql`
老环境补齐“归属人转移”权限时使用的正式增量脚本。
- `sql/import_oms_existing_opportunities_pg17.sql`
指定业务数据导入脚本,不属于结构升级脚本。
- `sql/archive/init_pg17.sql`
旧版本初始化快照,仅保留历史参考,不再作为正式入口。
- `sql/archive/alter_*.sql`
历史结构变更脚本。
- `sql/archive/fix_*.sql`
历史修数脚本。
## 维护约定
- 新增正式字段时,优先更新 `sql/init_full_pg17.sql`
- 若该字段来自一次线上增量功能发布,同时保留对应正式增量脚本
- 若只是历史修复,不要反向拆散主初始化脚本
- 已被新脚本完整覆盖的旧增量脚本,应及时删除或归档,避免出现多个入口表达同一能力
这样可以保证:
- 新环境只需要执行一份脚本
- 老环境仍然有明确、单一的功能补齐入口
- 目录里不会同时存在多个重复升级脚本