附录 D:配置参考
本附录列出 VSDB 的配置文件和选项。
D.1 连接存储位置
项目级连接
.vsdb/connections.json
示例内容:
{
"connections": [
{
"id": "uuid-1",
"name": "dev-mysql",
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "root",
"database": "myapp",
"scope": "project",
"group": "development",
"color": "blue"
}
]
}
全局连接
~/.vsdb/connections.json
格式与项目级相同,scope 为 "global"。
密码存储
密码通过 VSCode SecretStorage API 加密存储,键名格式:
vsdb.password.{connectionId}
D.2 IpcManager 配置
interface IpcManagerOptions {
workerScriptPath: string; // Worker 脚本路径(必填)
restartOnCrash?: boolean; // 崩溃时重启(默认 true)
maxRestartAttempts?: number; // 最大重启次数(默认 3)
requestTimeout?: number; // 请求超时(默认 60000ms)
heartbeatInterval?: number; // 心跳间隔(默认 15000ms)
heartbeatTimeout?: number; // 心跳超时(默认 30000ms)
streamChunkTimeout?: number; // 分块超时(默认 30000ms)
gracefulShutdownTimeout?: number; // 关闭超时(默认 10000ms)
callbacks?: IpcManagerCallbacks; // 事件回调
}
默认值:
const DEFAULT_REQUEST_TIMEOUT = 60000; // 60 秒
const DEFAULT_MAX_RESTART_ATTEMPTS = 3;
const DEFAULT_HEARTBEAT_INTERVAL = 15000; // 15 秒
const DEFAULT_HEARTBEAT_TIMEOUT = 30000; // 30 秒
const DEFAULT_STREAM_CHUNK_TIMEOUT = 30000; // 30 秒
const DEFAULT_GRACEFUL_SHUTDOWN_TIMEOUT = 10000; // 10 秒
D.3 QueryQueue 配置
interface QueryQueueOptions {
maxConcurrency?: number; // 最大并发(默认 5)
defaultTimeout?: number; // 默认超时(默认 30000ms)
}
D.4 连接选项
DbConnection 的 options 字段支持:
MySQL 选项
{
charset?: string; // 字符集(如 'utf8mb4')
timezone?: string; // 时区(如 '+08:00'')
ssl?: { // SSL 配置
rejectUnauthorized?: boolean;
ca?: string;
cert?: string;
key?: string;
};
multipleStatements?: boolean; // 多语句支持(默认 false)
}
PostgreSQL 选项
{
ssl?: boolean | { // SSL 配置
rejectUnauthorized?: boolean;
ca?: string;
cert?: string;
key?: string;
};
applicationName?: string; // 应用名
connectionTimeoutMillis?: number; // 连接超时
idleTimeoutMillis?: number; // 空闲超时
}
D.5 扫描配置
EnvParser
const ENV_FILE_PATTERNS = [
'.env',
'.env.local',
'.env.development',
'.env.production',
'.env.test',
'.env.staging',
];
const MAX_DEPTH = 3; // 最大搜索深度
解析的环境变量:
| 变量 | 类型 | 说明 |
|---|---|---|
DATABASE_URL | PostgreSQL/MySQL URL | 完整连接字符串 |
DB_URL | PostgreSQL/MySQL URL | 同 DATABASE_URL |
DB_HOST | Host | 需配合 DB_PORT 等 |
DB_PORT | Port | 默认 PostgreSQL |
DB_USER | Username | - |
DB_PASSWORD | Password | - |
DB_NAME | Database | - |
MYSQL_HOST | Host (MySQL) | - |
MYSQL_PORT | Port (MySQL) | 默认 3306 |
MYSQL_USER | Username | - |
MYSQL_PASSWORD | Password | - |
MYSQL_DATABASE | Database | - |
PG_HOST | Host (PostgreSQL) | - |
PG_PORT | Port (PostgreSQL) | 默认 5432 |
PG_USER | Username | - |
PG_PASSWORD | Password | - |
PG_DATABASE | Database | - |
DockerComposeParser
识别的镜像:
- 包含
mysql或mariadb→ MySQL - 包含
postgres或postgresql→ PostgreSQL
解析的环境变量:
| 变量 | 类型 | 说明 |
|---|---|---|
MYSQL_ROOT_PASSWORD | Password | MySQL root 密码 |
MYSQL_USER | Username | MySQL 用户 |
MYSQL_PASSWORD | Password | MySQL 用户密码 |
MYSQL_DATABASE | Database | MySQL 数据库 |
POSTGRES_USER | Username | PostgreSQL 用户 |
POSTGRES_PASSWORD | Password | PostgreSQL 密码 |
POSTGRES_DB | Database | PostgreSQL 数据库 |
D.6 HistoryManager 配置
const maxItems = 100; // 最大历史记录数
清理策略:
- 超过上限时优先清理未固定项
- 全部固定时清理最旧的固定项
D.7 SearchEngine 配置
const cacheTimeout = 60000; // Schema 缓存时间(1 分钟)
搜索选项默认值:
| 选项 | 默认值 |
|---|---|
searchTables | true |
searchColumns | true |
searchData | false(较慢) |
caseSensitive | false |
D.8 扩展 manifest 配置
// package.json
{
"name": "vsdb",
"displayName": "VSDB - Database Client",
"version": "0.1.0",
"engines": {
"vscode": "^1.85.0"
},
"categories": ["Database", "Other"],
"activationEvents": ["onView:vsdb.connections"],
"main": "./dist/extension.js"
}
D.9 TypeScript 配置
// tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "ES2020",
"outDir": "./dist",
"rootDir": "./src",
"sourceMap": true,
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true
}
}
D.10 Vitest 配置
// vitest.config.ts
export default defineConfig({
test: {
globals: true,
environment: 'node',
coverage: {
provider: 'v8',
threshold: {
lines: 80,
functions: 80,
branches: 80,
},
},
},
});