# ============================================================================== # RailwaySystem 融合测试环境数据源配置样例 (Fusion QA Profile) # 适用数据库: railwaysystem_fusion_qa_20261013 # 核心解决: MyBatis Mapper 表名未加 schema 前缀 与 Kingbase 多模式 (public, iotlocks) 的解析一致性 # ============================================================================== spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.kingbase8.Driver druid: master: # 1. 目标连接库: 严格锁定融合测试库 railwaysystem_fusion_qa_20261013 # currentSchema 设置为 public,基准模式为培训与若依系统底座 url: jdbc:kingbase8://${DB_HOST:192.168.139.218}:${DB_PORT:4321}/railwaysystem_fusion_qa_20261013?currentSchema=public # 2. 数据库运行账号: 生产与集成测试使用最小权限账号 fusion_qa_app (杜绝使用超级用户 kingbase) username: ${DB_APP_USER:fusion_qa_app} password: ${DB_APP_PASSWORD:} # 3. 【核心配置】多模式 search_path 会话初始化注入: # - public 排第 1 位: sys_* 与 train_* 表优先解析,杜绝命名污染 # - iotlocks 排第 2 位: lock_* 表无需修改 Mapper XML 加前缀即可透明命中 # - pg_catalog, sys_catalog 显式置后: 彻底防止 Kingbase 将系统内置视图 (如 sys_user) 提至首位抢占业务表 connectionInitSqls: - set search_path to public, iotlocks, pg_catalog, sys_catalog # 连接池基础性能与健康检查参数 initialSize: 5 minIdle: 10 maxActive: 20 maxWait: 60000 connectTimeout: 30000 socketTimeout: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 maxEvictableIdleTimeMillis: 900000 validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false