Files
happy-life-star/docs/superpowers/specs/2026-05-23-brand-rename-design.md
T
peanut 9838e7626b feat: 分析模块、接口管理及其他功能优化
- 后端: WebMvcConfig/拦截器/AnalyticsService/Mapper/测试优化,新增 Knife4jConfig、AnalyticsDictionary、数据库迁移脚本
- 前端: 分析仪表盘 UI 优化、接口管理列表及详情测试面板
- 小程序: analytics 服务优化、request 增强
- 文档: 分析模块中文标签设计文档、品牌重命名设计文档
- 部署: conf 配置优化、deploy.py 脚本更新

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 23:52:39 +08:00

175 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
author: Peanut
created_at: 2026-05-23
purpose: 全项目品牌重命名方案,从"情绪博物馆"到"开心星球"
---
# 情绪博物馆 → 开心星球 品牌重命名方案
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 将项目中所有"情绪博物馆"相关文案(中文/英文/标识符)替换为"开心星球"对应名称,分层递进执行,保障数据安全和服务可用性。
**Architecture:** 分 4 步递进执行:文档层 → 用户可见层 → 配置层 → 底层标识。每步独立可验证,出问题可回退。
**Tech Stack:** grep/sed 批量替换、mysqldump 数据库迁移、git 版本控制、Spring Boot 配置切换
---
## 命名映射表
| 旧标识 | 新标识 | 使用场景 |
|---|---|---|
| `情绪博物馆` | `开心星球` | 中文文案(页面标题、提示语、文档) |
| `Emotion Museum` | `Happy Planet` | 英文标题 |
| `emotion-museum` | `happy-planet` | kebab-case(路径、文件名、service 名、jar 名) |
| `EmotionMuseum` | `HappyPlanet` | PascalCase(类名前缀) |
| `emotion_museum` | `happy_planet` | snake_case(数据库名、SQL |
| `com.emotion` | `com.happyplanet` | Java 包名 |
| `emotion-museum.conf` | `happy-planet.conf` | nginx 配置名 |
| `emotion` | `happyplanet` | 包名前缀 |
**保持不变的项**
- URL 路径(如 `/emotion-museum-admin/`)— 保持兼容
- 目录名(`web/``web-admin/``backend-single/`)— 避免构建断裂
- 数据库表名前缀(如 `emotion_record` → 保持)— 避免 Entity/Table 映射断裂
## 第 1 步:文档层(无风险)
**影响范围**:纯文档文件,不改任何代码或配置
**文件列表**(约 20 个):
- `CLAUDE.md`
- `README.md`
- `docs/superpowers/` 下所有 .md
- 各模块下的 `部署说明.md``技术方案.md``后端代码规范.md`
- `backend-single/部署说明.md``backend-single/后端项目结构.md`
**操作**:批量 sed 替换中文 `情绪博物馆``开心星球`,英文 `Emotion Museum``Happy Planet``emotion-museum``happy-planet`
**验证**grep 确认无残留
## 第 2 步:用户可见层(低风险)
**影响范围**:用户实际看到的页面文案和提示信息
**文件列表**
- `web/src/` 下 Vue 组件中的中文标题
- `web-admin/src/` 下 Vue 组件中的中文标题(登录页、布局、各页面)
- `mini-program/src/` 下页面标题和提示文案
- `.env.development``.env.production` 中的 `VITE_APP_TITLE`
- `package.json` 中的 `name`/`description`
- 部署脚本中的部署完成提示
**操作**
1. `web/src/``web-admin/src/` 中替换 `情绪博物馆``开心星球`
2. `mini-program/src/` 中替换
3. `.env` 文件中 `VITE_APP_TITLE` 改为 `开心星球管理后台` / `开心星球`
**验证**:启动前端开发服务器,浏览器验证各页面标题和文案
## 第 3 步:配置层(中等风险,需验证)
**影响范围**:配置文件、部署脚本、nginx、systemd service
### 3.1 应用配置
- `backend-single/src/main/resources/application.yml``spring.application.name`
- `backend-single/src/main/resources/application-*.yml` — 同上
- 日志路径、应用描述等配置中的 `emotion-museum`
### 3.2 部署脚本
- `deploy.sh``deploy.py`
- `backend-single/deploy.py``backend-single/deploy.sh`
- `web/deploy.sh``web/deploy.py`
- `web-admin/deploy.sh``web-admin/deploy.py`
- 各脚本中的路径引用、日志路径、提示文案
### 3.3 nginx 配置
- `conf/emotion-museum.conf` → 重命名为 `happy-planet.conf`
- 内部路径 `/emotion-museum-admin/` 保持不变(URL 兼容)
- `emotion-museum` 路径引用在注释中的改为 `happy-planet`
- jar 文件名、日志路径引用中的 `emotion-museum`
### 3.4 systemd Service
- `backend-single/asr-service/emotion-museum-asr.service``happy-planet-asr.service`
- `backend-single/tts-service/emotion-museum-tts.service``happy-planet-tts.service`
- 内部路径和描述中的 `emotion-museum`
### 3.5 工具脚本
- `tools/service_manager.py`
- `manage.py`
- `manage.conf.yaml`
### 数据库迁移
**操作**
1. `mysqldump -h ... -u ... -p emotion_museum > emotion_museum_backup.sql`
2. 创建新库:`CREATE DATABASE happy_planet DEFAULT CHARACTER SET utf8mb4`
3. `sed -i 's/emotion_museum/happy_planet/g' emotion_museum_backup.sql`
4. `mysql -h ... -u ... -p happy_planet < emotion_museum_backup.sql`
5. 更新 `application-prod.yml` 中的 `spring.datasource.url``happy_planet`
6. 重启后端服务,验证功能
7. 保留旧库 `emotion_museum` 备份,确认无误后删除
**回退方案**:改回 `application-prod.yml` 中的数据库名即可恢复
## 第 4 步:底层标识(高风险,最后执行)
### 4.1 Java 包名重命名
**操作**
1. 移动目录:`backend-single/src/main/java/com/emotion/``backend-single/src/main/java/com/happyplanet/`
2. 更新 `pom.xml` 中的包名引用
3. 用 sed 批量替换所有 `.java` 文件中 `package com.emotion``package com.happyplanet`
4. 用 sed 批量替换所有 `.java` 文件中 `import com.emotion``import com.happyplanet`
5. 编译验证:`mvn clean install -DskipTests`
6. 处理编译错误(可能有遗漏的引用)
**测试目录**
- `backend-single/src/test/java/com/emotion/` 同样需要迁移
- `.java` 文件中的 `package``import` 语句
### 4.2 SQL 文件
**操作**
- `sql/emotion_museum_init.sql``happy_planet_init.sql`
- `sql/emotion_museum_ddl.sql``happy_planet_ddl.sql`
- `sql/emotion_museum.sql``happy_planet.sql`
- 文件内部 `CREATE DATABASE emotion_museum``happy_planet`
- `USE emotion_museum``USE happy_planet`
### 4.3 其他底层引用
- `backend-single/create_api_tables.sql` 中的数据库名
- `.gitignore` 中的路径引用(如有)
**验证**
1. `mvn clean install -DskipTests` 编译通过
2. 启动后端服务,健康检查通过
3. 前端页面可正常访问,API 调用正常
## 执行顺序与依赖
```
步骤 1 (文档) → 步骤 2 (用户可见) → 步骤 3 (配置) → 步骤 4 (底层标识)
数据库迁移 (3.6)
验证通过后再继续 4
```
## 回退策略
- 每个步骤完成后立即 git commit
- 数据库迁移保留旧库
- URL 路径全部不变,避免 404
- 如有编译错误,git revert 最近 commit
## 风险点与应对
| 风险 | 应对 |
|---|---|
| Java 包名迁移遗漏引用 | 分步编译,逐层修复 |
| 数据库迁移数据丢失 | 迁移前完整备份 |
| nginx 配置断裂 | 保留旧配置备份,先 cp 再改 |
| 部署脚本路径断裂 | 先本地 grep 验证,再上传 |
| Java 编译内存不足 | 临时增加 `-Xmx2048m` |