Skip to content

数据源

数据源是数据墙DBW 连接后端数据库的配置描述。每个配置文件必须至少包含一个 data-source 定义,告诉引擎如何连接到你的数据库。

配置项

数据源通过 JSON 配置中的 data-source 块定义,包含三个核心字段:

配置项说明示例
database-type数据库类型mssqlpostgresqlmysql
connection-string数据库连接字符串@env('CONN_STR')
options数据库特定选项会话上下文等

推荐使用 @env('VAR_NAME') 语法引用环境变量中的连接字符串,避免在配置文件中硬编码密码。

配置示例

SQL Server

json
{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "Server=localhost,1433;Database=MyDb;User Id=app;Password=P@ssw0rd;TrustServerCertificate=true;",
    "options": {
      "set-session-context": true
    }
  }
}

PostgreSQL

json
{
  "data-source": {
    "database-type": "postgresql",
    "connection-string": "Host=localhost;Port=5432;Database=MyDb;User ID=postgres;Password=P@ssw0rd;"
  }
}

MySQL

json
{
  "data-source": {
    "database-type": "mysql",
    "connection-string": "Server=localhost;Port=3306;Database=MyDb;User=root;Password=P@ssw0rd;"
  }
}

使用环境变量

json
{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}

启动服务前设置环境变量:

bash
# Windows (PowerShell)
$env:SQL_CONNECTION_STRING = "Server=localhost;Database=MyDb;..."

# Linux / macOS
export SQL_CONNECTION_STRING="Server=localhost;Database=MyDb;..."

同一份配置文件在不同环境中只需修改环境变量值,无需改动配置本身。

支持的数据库

数据库database-type说明
SQL Servermssql支持表、视图、存储过程、自动实体发现
PostgreSQLpostgresql支持表、视图、存储过程
MySQLmysql支持表、视图、存储过程

不同数据库在能力上存在细微差异,详情请参阅功能可用性

多数据源

通过 data-source-files 字段可以引用额外的配置文件,每个文件定义各自的数据源和实体:

json
{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('MAIN_DB')"
  },
  "data-source-files": ["config-crm.json", "config-erp.json"]
}

实体和权限分散在各配置文件中定义,运行时配置集中在顶层文件。所有实体在同一个 API 入口下统一对外暴露。

数据源健康检查

可以为数据源配置健康检查,在运行时定期验证数据库连接的可用性:

json
{
  "data-source": {
    "health": {
      "enabled": true,
      "name": "main-db",
      "threshold-ms": 1000
    }
  }
}

健康检查结果可以通过 /health 端点查询,适用于容器编排平台的存活探测和监控系统集成。

连接弹性

数据墙DBW 在遇到瞬时数据库连接错误后,会自动使用指数退避策略重试请求:

尝试次数第一次第二次第三次第四次第五次
等待时间2s4s8s16s32s

该机制无需额外配置,引擎会在底层自动处理瞬时故障。

数据墙DBW 产品文档与开发指南。