# MEMORY.md ## SQL 脚本生成规范 **场景:** 为实施人员生成可执行的 SQL 脚本,通过 xuan-sql 项目仓库分发。 **规范:** 1. 脚本放在 `xuan-sql/scripts/` 目录 2. 提交推送到 Gitee,其他主机 pull 同步给实施人员 3. **表名必须带数据库前缀**(如 `dmp_smdm.dmp_md_item_info`),因为生产实例有多个库 4. **不暴露 VPS IP**,脚本中只写库名和表名 5. 敏感信息用占位符(如 `${ECID}`),使用者自行替换 6. 先 SELECT 确认数据量,再 DELETE,DELETE 默认注释掉 ## 项目目录别名 - **xuan-sql** → `/home/yangxuan/codes/xuan-sql` ## MySQL DDL 结构备份(远程服务器 101.34.227.188) **脚本:** `scripts/mysql_ddl_backup.sh` **备份目录:** `backup/`(已加入 .gitignore,不入库) **方式:** `mysqldump --no-data --routines --triggers`,导出后 gzip 压缩为 `.sql.gz` **定时任务:** 工作日中午 12:00(cron: `0 12 * * 1-5`, Asia/Shanghai),jobId: `5e4856df-af0a-4961-93a9-06bec1aa3b1b` **保留策略:** 备份和日志均保留 7 天,自动清理 **目标库:** dmp_serp、dmp_smdm、dmp_smes、mysql、ruoyi-vue-pro ## SQL 日期修正脚本 — ecid='hsjm'(dmp_serp 库) **背景:** `create_time` 的日期部分与业务日期字段不一致,需要用业务日期替换日期部分,保留时分秒。 **规则:** `create_time` 取其时分秒 + 业务日期字段(如 `doc_date`)的日期部分拼接;不修改 `update_time`。 **共两批:** - 2026-07-15:第一批 15 个表(具体表名见 memory/2026-07-15.md) - 2026-07-17:补充第16表(收款单 `idb_fin_ar_collection_doc`)和第17表(付款单 `idb_fin_ap_payment_doc`),见 memory/2026-07-17.md **数据库:** `dmp_serp`,非本地 Docker MySQL,需在对应环境执行。