Skip to content

配置数据源

data-source 是配置文件的核心块之一,它告诉引擎连接哪个数据库、用哪种方式连接。每个配置文件必须有一个 data-source(使用 data-source-files 时每个子文件也都需要)。

基本配置

json
{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}
字段必需说明
database-type数据库类型:mssqlpostgresqlmysql
connection-string数据库连接字符串,支持 @env() 引用环境变量
options数据库特定选项

连接字符串

SQL Server

text
Server=<host>,<port>;Database=<db>;User Id=<user>;Password=<pwd>;TrustServerCertificate=true;Encrypt=true;

关键参数:

  • TrustServerCertificate=true:开发环境跳过证书验证。生产环境应使用正式证书。
  • Encrypt=true:启用传输加密。SQL Server 默认要求加密连接。
  • MultipleActiveResultSets=true:启用多活动结果集(MARS),GraphQL 多重变更和并发查询需要此选项。

PostgreSQL

text
Host=<host>;Port=5432;Database=<db>;User ID=<user>;Password=<pwd>;

MySQL

text
Server=<host>;Port=3306;Database=<db>;User=<user>;Password=<pwd>;

连接字符串可以使用 @env('VAR_NAME') 语法引用环境变量,避免在配置文件中写入明文密码。

options 选项

options 字段用于数据库特有的行为配置。不同数据库类型支持的选项不同:

SQL Server 选项

json
{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONN_STR')",
    "options": {
      "set-session-context": true
    }
  }
}
选项类型默认值说明
set-session-contextbooleanfalse将 JWT 令牌中的声明注入数据库会话上下文,行级安全策略中可通过 SESSION_CONTEXT 读取

PostgreSQL 选项

json
{
  "data-source": {
    "database-type": "postgresql",
    "connection-string": "@env('PG_CONN_STR')",
    "options": {
      "set-session-context": false
    }
  }
}
选项类型默认值说明
set-session-contextbooleanfalse是否启用会话上下文(PostgreSQL 使用 pg_settings 实现)

MySQL 选项

MySQL 数据源当前无特有 options 配置项,options 字段可省略。

读取配置文件

dab init 创建初始配置,dab configure 可以在已有配置基础上修改字段:

bash
# 修改数据库类型
dab configure --data-source.database-type "postgresql"

# 修改连接字符串
dab configure --data-source.connection-string "@env('PROD_CONN_STR')"

也可以直接编辑 JSON 文件,两种方式等效。

数据源健康检查

可以为数据源配置独立的健康检查:

json
{
  "data-source": {
    "health": {
      "enabled": true,
      "name": "main-db",
      "threshold-ms": 1000
    }
  }
}
字段说明默认值
enabled是否启用健康检查true
name/health 响应中的标识符使用 database-type 值(如 mssql
threshold-ms查询超时阈值(毫秒)1000

下一步

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