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)
* }));
* ```
*
Defined In
Source
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