Home / Type/ PgTableFn Type — drizzle-orm Architecture

PgTableFn Type — drizzle-orm Architecture

Architecture documentation for the PgTableFn type/interface in table.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  7a97bb2a_bfb5_f8ae_dc42_9a28da093318["PgTableFn"]
  2d5c8884_973c_561c_def6_5e394ea36d1a["table.ts"]
  7a97bb2a_bfb5_f8ae_dc42_9a28da093318 -->|defined in| 2d5c8884_973c_561c_def6_5e394ea36d1a
  style 7a97bb2a_bfb5_f8ae_dc42_9a28da093318 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/pg-core/table.ts lines 139–242

export interface PgTableFn<TSchema extends string | undefined = undefined> {
	<
		TTableName extends string,
		TColumnsMap extends Record<string, PgColumnBuilderBase>,
	>(
		name: TTableName,
		columns: TColumnsMap,
		extraConfig?: (
			self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,
		) => PgTableExtraConfigValue[],
	): PgTableWithColumns<{
		name: TTableName;
		schema: TSchema;
		columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
		dialect: 'pg';
	}>;

	<
		TTableName extends string,
		TColumnsMap extends Record<string, PgColumnBuilderBase>,
	>(
		name: TTableName,
		columns: (columnTypes: PgColumnsBuilders) => TColumnsMap,
		extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfigValue[],
	): PgTableWithColumns<{
		name: TTableName;
		schema: TSchema;
		columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
		dialect: 'pg';
	}>;
	/**
	 * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object
	 *
	 * @example
	 * Deprecated version:
	 * ```ts
	 * export const users = pgTable("users", {
	 * 	id: integer(),
	 * }, (t) => ({
	 * 	idx: index('custom_name').on(t.id)
	 * }));
	 * ```
	 *
	 * New API:
	 * ```ts
	 * export const users = pgTable("users", {
	 * 	id: integer(),
	 * }, (t) => [
	 * 	index('custom_name').on(t.id)
	 * ]);
	 * ```
	 */
	<
		TTableName extends string,
		TColumnsMap extends Record<string, PgColumnBuilderBase>,
	>(
		name: TTableName,
		columns: TColumnsMap,
		extraConfig: (
			self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>,
		) => PgTableExtraConfig,
	): PgTableWithColumns<{
		name: TTableName;
		schema: TSchema;
		columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
		dialect: 'pg';
	}>;

	/**
	 * @deprecated The third parameter of pgTable is changing and will only accept an array instead of an object
	 *
	 * @example
	 * Deprecated version:
	 * ```ts
	 * export const users = pgTable("users", {
	 * 	id: integer(),
	 * }, (t) => ({
	 * 	idx: index('custom_name').on(t.id)
	 * }));
	 * ```
	 *

Frequently Asked Questions

What is the PgTableFn type?
PgTableFn is a type/interface in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/table.ts.
Where is PgTableFn defined?
PgTableFn is defined in drizzle-orm/src/pg-core/table.ts at line 139.

Analyze Your Own Codebase

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

Try Supermodel Free