check in g3fo db skills

This commit is contained in:
2026-02-04 17:19:57 +08:00
parent 50455cc8c6
commit d76143ad6e
12 changed files with 3617 additions and 0 deletions
@@ -0,0 +1,101 @@
# SQL Site Naming Convention
本文档说明了项目中使用的 SQL 站点命名规则及其对应关系。
## 站点命名对照表
| 目录名称 | 对应站点 | IP地址 | 描述 |
|---------|---------------|--------|------|
| afe_ap | Alpha Site | | |
| dls_ap | DLS | | |
| hing_wai_ap | HingWai | | |
| vn-demo | VN Demo | | |
| vn-demo-local | VN Demo Local | | |
| 226 | UAT | | |
## 目录结构与执行机制
### update_service_release 目录结构
项目中的 SQL 文件按照以下结构组织:
```
update_service_release/
├── 版本号/ # 如 1.5.1.20
│ ├── sitename/ # 如 afe_ap, dls_ap 等
│ │ ├── patch/ # 补丁目录
│ │ │ └── 数字版本/ # 如 1, 2 等
│ │ │ └── *.sql # 补丁 SQL 文件
│ │ └── *.sql # 该站点特定的 SQL 文件
│ └── *.sql # 通用 SQL 文件
└── pending release x.x.x.x/ # 当前开发中的版本
```
### SQL 执行机制
1. **版本发布目录**:
- 每个版本号目录下包含适用于不同站点的 SQL 文件
- 站点特定的 SQL 文件放在对应的 `sitename` 子目录中
- 补丁文件放在对应站点的 `patch` 子目录中,按数字版本号分组
- 通用 SQL 文件直接放在版本号目录下
2. **当前开发版本**:
- `update_service_release/pending release x.x.x.x` 是当前正在开发的版本目录
- 每个版本下必须包含一个修改版本号的 SQL 文件:`set_version_01.sql`
- 该文件负责更新系统版本信息到 `m_system_setting` 表
3. **Jenkins 自动化执行**:
- 通过执行 `1-g3fo-db`/`g3fo-db-patch` 任务运行 SQL
- 大版本升级执行`1-g3fo-db`,只能执行一次
- 补丁执行`g3fo-db-patch`,可重复执行
- 系统会根据指定的站点和版本号执行对应目录下的 SQL 文件
- 默认执行版本号最大的 patch(可重复执行,保证幂等性)
### 版本号更新文件示例
每个版本必须包含 `set_version_01.sql` 文件,其内容如下(控实际情况修改版本号,以下是1.5.1.20版本示例):
```sql
UPDATE `g3fo_base`.`m_system_setting`
SET `param_value` = '1.5.1.0 M20',
`update_on` = NOW()
WHERE
`param_name` = 'base.systemVersion';
UPDATE `g3fo_base`.`m_system_setting`
SET `param_value` = '0',
`update_on` = NOW()
WHERE
`param_name` = 'base.patchNo';
```
## 命名一致性要求
为了确保自动化部署和执行流程的正常运行,`sitename` 目录命名必须与以下配置保持严格一致:
1. **Jenkins 配置**:
- Jenkins -> 系统管理 -> Publish over SSH -> SSH Server Name 中配置的服务名
- 例如:如果 Jenkins 中配置的 SSH Server Name 为 `afe_ap`,则目录名必须也为 `afe_ap`
2. **执行服务器配置**:
- 与执行 SQL 的服务器(Build 机或 support 机)上的 `/data/g3dbExecution/db_config.json` 文件中的 key 保持一致
- 该 JSON 文件中的 key 值必须与目录名称完全匹配
这种一致性确保了:
- Jenkins 能够正确地将 SQL 文件传输到目标服务器
- SQL 脚本能够在正确的环境中执行
- 部署流程能够自动化进行而不会出现配置错误
## 添加新环境
当需要添加新的部署环境时,请遵循以下命名规则:
- 生产环境:使用客户名称的缩写加 `_ap` 后缀
- 测试环境:使用环境用途加版本号或标识符的形式
## 注意事项
- 所有命名应保持简洁明了
- 同一类环境应保持命名风格一致
- 添加新环境后应及时更新此文档
- 修改现有环境名称前需确认关联的所有配置均已同步更新