Files
civitai__civitai/src/server/db/datapacketDb.ts
T
Briant Diehl 5cc887c97c refactor(packages): factory + per-package env schema for base packages
Convert the civitai-* base packages from eager singletons into app-agnostic factories with their own zod env schemas, and wire them into the main app via thin shims. Packages now import only external deps (+ @civitai/db-schema); the app injects behavior (loggers, Flipt resolver, slow-query sink) and owns HMR globals + the Next build guard.

- Phase 0: pnpm-workspace.yaml, per-package package.json + index barrels, @civitai/* tsconfig paths, transpilePackages
- axiom/redis/db/clickhouse: createX() factories reading package-owned env.ts (z.prettifyError); Partial<Config> overrides
- db: createPrismaClients + config-driven getClient pool factory; kv-helpers.ts breaks the client<->db-helpers cycle; limitConcurrency vendored; pg singletons -> app shims
- clickhouse: base client stays; Tracker (auth/session/schema-coupled) extracted to src/server/clickhouse/tracker.ts
- telemetry: prom helpers stay; DB pool-gauge block -> src/server/prom/client.ts
- prisma generate paths updated for the db-schema package; generated slim schema gitignored

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 13:39:06 -06:00

21 lines
705 B
TypeScript

// App shim: datapacket read pool. See pgDb.ts for the pattern.
import { getClient, type AugmentedPool } from '@civitai/db/db-helpers';
import { isProd } from '~/env/other';
import { createLogger } from '~/utils/logging';
const log = createLogger('pgDb', 'blue');
declare global {
// eslint-disable-next-line no-var, vars-on-top
var globalDatapacketDbRead: AugmentedPool | undefined;
}
export let datapacketDbRead: AugmentedPool;
if (isProd) {
datapacketDbRead = getClient({ instance: 'datapacketRead', log });
} else {
if (!global.globalDatapacketDbRead)
global.globalDatapacketDbRead = getClient({ instance: 'datapacketRead', log });
datapacketDbRead = global.globalDatapacketDbRead;
}