# 现网 vs 新系统 inquiry_robot(切换只改配置,不改代码) 同一套制品。用 `YTD_ENV=prod` 或 `YTD_ENV=test` 区分阶段(变量名仍叫 YTD_*,与 `03` 对齐)。 **域名与企微与现网相同**(`ai.ytd-scm.com`、应用 `1000010`)。 **新系统资源名一律 `inquiry_robot*`**,禁止再用 `ytd_test` / `ytd:test:` / `ytd-test`。 禁止在代码里写死域名/库名。 切流目标(方案 B):`E:\wwwroot` 取代 `C:\yutongda`。清单见 `deploy/CUTOVER-TO-PROD.md`。 对照表是切换清单。现网发布仍走甲方原流程与 `C:\yutongda` 指针;新系统只写 `E:\wwwroot`。 ## 对照 | 项 | 现网(仍在跑) | 新系统 `inquiry_robot` | |---|---|---| | `YTD_ENV` | `prod`(现网进程) | 切流前可用 `test`;切流日改 `prod` | | 公网域名 | `ai.ytd-scm.com` | **同一域名** | | DNS / 证书 / Nginx | 已有 `ai.conf` | **不要另开域名/证书**;反代按切流改 | | 站点 / H5 / 企微回调 | 同左 | 配置字符串相同;企微回调 URL **不用改** | | 后台 API 前缀 | `/jeecgboot` → 8080 | `/jeecgboot` → **新主账 8180**(切流后) | | 运行根 | `C:\yutongda` | **`E:\wwwroot`**(`admin\current` / `agent\current`) | | 主账端口 | 8080(Jeecg) | **8180**(新 Java 主账,非 Jeecg) | | 智能体 HTTP | 8810(另 8809/8811) | **8910**(合并) | | AIBOT | 8813 | **8913**(切流前勿双连) | | MySQL | `jeecg-boot` / `ytd_jeecg` | **`inquiry_robot` / `inquiry_robot`** | | PostgreSQL | `ytd_runtime` | **`inquiry_robot_runtime`** | | Redis | db0 `ytd:prod:node01-07` | db1 **`inquiry_robot:`** | | MinIO 桶 | `ytd-inquiry` | **`inquiry-robot`**(S3 桶名不能用下划线) | | 询价企微应用 | `1000010` | **同一套** | | 运维企微 | `1000014` | **同一套**;切流前告警可加 `[test]` | | AIBOT Bot | 现网 Bot | **同一套**;切流先停 8813 再开 8913 | | TMS | `03` 现网 Client | 同一套;切流前默认关 lock/release | | 发布脚本 | 现网累计发布器 | 只写 `E:\wwwroot` | | 告警前缀 | 无 | 切流前 `[test]`;切流后去掉 | 数据机 IP、3306/5432/6379、MinIO `127.0.0.1:9000` **两边相同**。只换库名、用户、Redis db/前缀、桶。 ## 数据库与存储(同一套变量名) 代码、YAML 只读变量名,**禁止**写死库名。现网明文见 `03`;新系统口令新开,写入 `E:\wwwroot\.env`。 | 变量 | 现网 | 新系统 | |---|---|---| | `MYSQL_HOST` | `10.206.0.14` | 同左 | | `MYSQL_PORT` | `3306` | 同左 | | `MYSQL_DB` | `jeecg-boot` | **`inquiry_robot`** | | `MYSQL_USER` | `ytd_jeecg` | **`inquiry_robot`** | | `MYSQL_PASSWORD` | 见 `03` | **新开,勿抄现网口令** | | `YTD_MYSQL_URL` / JDBC | `.../jeecg-boot?...` | `.../inquiry_robot?...` | | `PG_HOST` | `10.206.0.14` | 同左 | | `PG_PORT` | `5432` | 同左 | | `PG_DATABASE` | `ytd_runtime` | **`inquiry_robot_runtime`** | | `PG_USER` | `ytd_runtime` | **`inquiry_robot_runtime`** | | `PG_PASSWORD` | 见 `03` | **新开** | | `PG_SSLMODE` | `prefer` | `prefer` | | `CHECKPOINT_BACKEND` | `postgres` | `postgres` | | `YTD_REDIS_HOST` | `10.206.0.14` | 同左 | | `YTD_REDIS_PORT` | `6379` | 同左 | | `YTD_REDIS_USERNAME` | `ytd_app` | 可同账号或新账号 | | `REDIS_URL` | `...6379/0` | **`...6379/1`** | | `REDIS_KEY_PREFIX` | `ytd:prod:node01-07` | **`inquiry_robot:`** | | `OBJECT_STORAGE_BUCKET` | `ytd-inquiry` | **`inquiry-robot`** | 新系统 `.env` 片段(口令留空): ```text YTD_ENV=test YTD_DEPLOY_ROOT=E:\wwwroot MYSQL_DB=inquiry_robot MYSQL_USER=inquiry_robot YTD_MYSQL_URL=jdbc:mysql://10.206.0.14:3306/inquiry_robot?characterEncoding=UTF-8&useUnicode=true&useSSL=true&requireSSL=true&verifyServerCertificate=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai PG_DATABASE=inquiry_robot_runtime PG_USER=inquiry_robot_runtime REDIS_URL=redis://ytd_app:<密码>@10.206.0.14:6379/1 REDIS_KEY_PREFIX=inquiry_robot: OBJECT_STORAGE_BUCKET=inquiry-robot ``` **切换环境 = 换 `.env` 取值,不改代码、不在迁移里写死库名。** 切流前新进程不得连 `jeecg-boot` / `ytd_runtime` / Redis `/0` 且前缀 `ytd:prod:` / 桶 `ytd-inquiry`。 ## 代码约定 所有环境差异只进 `.env` / 前端构建参数 / Nginx,例如: ```text YTD_ENV=test PUBLIC_BASE_URL=https://ai.ytd-scm.com WECOM_CALLBACK_URL=https://ai.ytd-scm.com/wecom/callback INQUIRY_FORM_PUBLIC_BASE_URL=https://ai.ytd-scm.com/inquiry-form BIZ_API_BASE_URL=http://127.0.0.1:8180 AGENT_CALLBACK_BASE_URL=http://127.0.0.1:8910 WECOM_AIBOT_BRIDGE_URL=http://127.0.0.1:8913 WECOM_AIBOT_INGRESS_URL=http://127.0.0.1:8910/internal/aibot/inbound WECOM_AIBOT_ENABLED=false WECOM_AIBOT_BOT_ID= WECOM_AIBOT_SECRET= WECOM_AIBOT_WS_URL=wss://openws.work.weixin.qq.com REDIS_KEY_PREFIX=inquiry_robot: PG_DATABASE=inquiry_robot_runtime MYSQL_DB=inquiry_robot OBJECT_STORAGE_BUCKET=inquiry_robot ``` 两套 `.env` 分开放:现网仍在 `C:\yutongda\...`,新系统在 `E:\wwwroot\.env`。不要互相覆盖。 ## 以后切到正式(新系统接管) 见 `deploy/CUTOVER-TO-PROD.md`。顺序摘要: 1. 新进程在隔离库 `inquiry_robot*` 验收通过。 2. `.env`:`YTD_ENV=prod`;库继续 `inquiry_robot*`(或甲方最终名)。 3. Nginx 反代切到新主账/智能体;企微回调 URL 不用改。 4. 停现网 8813,再起 8913。 5. 去掉告警 `[test]`。 ## 禁止 - 新进程连 `jeecg-boot` / `ytd:prod:` / 桶 `ytd-inquiry` - 新系统再使用 `ytd_test` / `ytd:test:` / `ytd-test` 命名 - 并存期与现网 **同时** 连接同一 AIBOT 长连接 - 一份 `.env` 混用两套库