Add postgres pool info to config

This commit is contained in:
Owen
2025-10-07 15:06:42 -07:00
parent b627e391ac
commit 7d0303e2be
2 changed files with 21 additions and 6 deletions

View File

@@ -35,11 +35,12 @@ function createDb() {
} }
// Create connection pools instead of individual connections // Create connection pools instead of individual connections
const poolConfig = config.postgres.pool;
const primaryPool = new Pool({ const primaryPool = new Pool({
connectionString, connectionString,
max: 20, max: poolConfig.max_connections,
idleTimeoutMillis: 30000, idleTimeoutMillis: poolConfig.idle_timeout_ms,
connectionTimeoutMillis: 5000, connectionTimeoutMillis: poolConfig.connection_timeout_ms,
}); });
const replicas = []; const replicas = [];
@@ -50,9 +51,9 @@ function createDb() {
for (const conn of replicaConnections) { for (const conn of replicaConnections) {
const replicaPool = new Pool({ const replicaPool = new Pool({
connectionString: conn.connection_string, connectionString: conn.connection_string,
max: 10, max: poolConfig.max_replica_connections,
idleTimeoutMillis: 30000, idleTimeoutMillis: poolConfig.idle_timeout_ms,
connectionTimeoutMillis: 5000, connectionTimeoutMillis: poolConfig.connection_timeout_ms,
}); });
replicas.push(DrizzlePostgres(replicaPool)); replicas.push(DrizzlePostgres(replicaPool));
} }

View File

@@ -158,7 +158,21 @@ export const configSchema = z
connection_string: z.string() connection_string: z.string()
}) })
) )
.optional(),
pool: z
.object({
max_connections: z.number().positive().optional().default(20),
max_replica_connections: z.number().positive().optional().default(10),
idle_timeout_ms: z.number().positive().optional().default(30000),
connection_timeout_ms: z.number().positive().optional().default(5000)
})
.optional() .optional()
.default({
max_connections: 20,
max_replica_connections: 10,
idle_timeout_ms: 30000,
connection_timeout_ms: 5000
})
}) })
.optional(), .optional(),
traefik: z traefik: z