Home / File/ db.ts — drizzle-orm Source File

db.ts — drizzle-orm Source File

Architecture documentation for db.ts, a typescript file in the drizzle-orm codebase. 27 imports, 1 dependents.

File typescript DrizzleORM DatabaseDrivers 27 imports 1 dependents 1 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  99d4b8a7_e046_2f16_afff_9a25e87a12c1["db.ts"]
  b5f68e91_0c18_4699_4724_dcbb5d28898e["index.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> b5f68e91_0c18_4699_4724_dcbb5d28898e
  fa6a01b7_6d1f_e5fb_2daa_b614b6687cb0["count.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> fa6a01b7_6d1f_e5fb_2daa_b614b6687cb0
  ac948e16_8fee_2312_8b12_6929b5a7ee06["PgCountBuilder"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> ac948e16_8fee_2312_8b12_6929b5a7ee06
  cb792d01_598c_043a_5de1_379e203f46ee["query.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> cb792d01_598c_043a_5de1_379e203f46ee
  84e61caa_cc0d_a92d_e0c4_b41195135bb9["RelationalQueryBuilder"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 84e61caa_cc0d_a92d_e0c4_b41195135bb9
  880c509a_a5b7_154e_3e50_e0d899de78b5["raw.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 880c509a_a5b7_154e_3e50_e0d899de78b5
  3b6afbb8_a1c2_74f3_5dc8_51664d26724a["PgRaw"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 3b6afbb8_a1c2_74f3_5dc8_51664d26724a
  f939d714_f307_8518_c626_5245d56a91f7["PgRaw"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> f939d714_f307_8518_c626_5245d56a91f7
  41476081_497d_90a4_b230_43e26c58011b["refresh-materialized-view.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 41476081_497d_90a4_b230_43e26c58011b
  4290a7a8_4f2b_6cec_2b27_e81313bf4d01["PgRefreshMaterializedView"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 4290a7a8_4f2b_6cec_2b27_e81313bf4d01
  5258b94f_b598_2dd9_a262_ef2c72c2940d["PgRefreshMaterializedView"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 5258b94f_b598_2dd9_a262_ef2c72c2940d
  65d45edf_0d8a_b7f0_1780_573c12d9a0e6["select.types.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 65d45edf_0d8a_b7f0_1780_573c12d9a0e6
  2f61feb4_8de9_0737_895f_3ed46c146b33["subquery.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 2f61feb4_8de9_0737_895f_3ed46c146b33
  9d23be1a_5095_403a_6191_75a2d7365cdd["view-base.ts"]
  99d4b8a7_e046_2f16_afff_9a25e87a12c1 --> 9d23be1a_5095_403a_6191_75a2d7365cdd
  style 99d4b8a7_e046_2f16_afff_9a25e87a12c1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { Cache } from '~/cache/core/cache.ts';
import { entityKind } from '~/entity.ts';
import type { PgDialect } from '~/pg-core/dialect.ts';
import {
	PgDeleteBase,
	PgInsertBuilder,
	PgSelectBuilder,
	PgUpdateBuilder,
	QueryBuilder,
} from '~/pg-core/query-builders/index.ts';
import type {
	PgQueryResultHKT,
	PgQueryResultKind,
	PgSession,
	PgTransaction,
	PgTransactionConfig,
	PreparedQueryConfig,
} from '~/pg-core/session.ts';
import type { PgTable } from '~/pg-core/table.ts';
import type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';
import type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';
import { SelectionProxyHandler } from '~/selection-proxy.ts';
import { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';
import { WithSubquery } from '~/subquery.ts';
import type { DrizzleTypeError, NeonAuthToken } from '~/utils.ts';
import type { PgColumn } from './columns/index.ts';
import { PgCountBuilder } from './query-builders/count.ts';
import { RelationalQueryBuilder } from './query-builders/query.ts';
import { PgRaw } from './query-builders/raw.ts';
import { PgRefreshMaterializedView } from './query-builders/refresh-materialized-view.ts';
import type { SelectedFields } from './query-builders/select.types.ts';
import type { WithBuilder } from './subquery.ts';
import type { PgViewBase } from './view-base.ts';
import type { PgMaterializedView } from './view.ts';

export class PgDatabase<
	TQueryResult extends PgQueryResultHKT,
	TFullSchema extends Record<string, unknown> = Record<string, never>,
	TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>,
> {
	static readonly [entityKind]: string = 'PgDatabase';

	declare readonly _: {
		readonly schema: TSchema | undefined;
		readonly fullSchema: TFullSchema;
		readonly tableNamesMap: Record<string, string>;
		readonly session: PgSession<TQueryResult, TFullSchema, TSchema>;
	};

	query: TFullSchema extends Record<string, never>
		? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>
		: {
			[K in keyof TSchema]: RelationalQueryBuilder<TSchema, TSchema[K]>;
		};

	constructor(
		/** @internal */
		readonly dialect: PgDialect,
		/** @internal */
		readonly session: PgSession<any, any, any>,
// ... (636 more lines)

Domain

Subdomains

Functions

Classes

Dependencies

Frequently Asked Questions

What does db.ts do?
db.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, DatabaseDrivers subdomain.
What functions are defined in db.ts?
db.ts defines 1 function(s): withReplicas.
What does db.ts depend on?
db.ts imports 27 module(s): PgCountBuilder, PgRaw, PgRaw, PgRefreshMaterializedView, PgRefreshMaterializedView, RelationalQueryBuilder, cache.ts, count.ts, and 19 more.
What files import db.ts?
db.ts is imported by 1 file(s): session.ts.
Where is db.ts in the architecture?
db.ts is located at drizzle-orm/src/pg-core/db.ts (domain: DrizzleORM, subdomain: DatabaseDrivers, directory: drizzle-orm/src/pg-core).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free