pgTableWithSchema() — drizzle-orm Function Reference
Architecture documentation for the pgTableWithSchema() function in table.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD dae5654f_1fee_289f_bc31_bb7199ac008e["pgTableWithSchema()"] 2d5c8884_973c_561c_def6_5e394ea36d1a["table.ts"] dae5654f_1fee_289f_bc31_bb7199ac008e -->|defined in| 2d5c8884_973c_561c_def6_5e394ea36d1a cb98271f_26ce_30a5_c69f_b167a0a9c063["pgTable()"] cb98271f_26ce_30a5_c69f_b167a0a9c063 -->|calls| dae5654f_1fee_289f_bc31_bb7199ac008e acb44198_384a_c886_4234_b308c98c05c6["pgTableCreator()"] acb44198_384a_c886_4234_b308c98c05c6 -->|calls| dae5654f_1fee_289f_bc31_bb7199ac008e ea1ef90c_4d8f_98dc_2d20_4e57f6ad3e71["getPgColumnBuilders()"] dae5654f_1fee_289f_bc31_bb7199ac008e -->|calls| ea1ef90c_4d8f_98dc_2d20_4e57f6ad3e71 style dae5654f_1fee_289f_bc31_bb7199ac008e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/pg-core/table.ts lines 71–137
export function pgTableWithSchema<
TTableName extends string,
TSchemaName extends string | undefined,
TColumnsMap extends Record<string, PgColumnBuilderBase>,
>(
name: TTableName,
columns: TColumnsMap | ((columnTypes: PgColumnsBuilders) => TColumnsMap),
extraConfig:
| ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig | PgTableExtraConfigValue[])
| undefined,
schema: TSchemaName,
baseName = name,
): PgTableWithColumns<{
name: TTableName;
schema: TSchemaName;
columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
dialect: 'pg';
}> {
const rawTable = new PgTable<{
name: TTableName;
schema: TSchemaName;
columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
dialect: 'pg';
}>(name, schema, baseName);
const parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getPgColumnBuilders()) : columns;
const builtColumns = Object.fromEntries(
Object.entries(parsedColumns).map(([name, colBuilderBase]) => {
const colBuilder = colBuilderBase as PgColumnBuilder;
colBuilder.setName(name);
const column = colBuilder.build(rawTable);
rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));
return [name, column];
}),
) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;
const builtColumnsForExtraConfig = Object.fromEntries(
Object.entries(parsedColumns).map(([name, colBuilderBase]) => {
const colBuilder = colBuilderBase as PgColumnBuilder;
colBuilder.setName(name);
const column = colBuilder.buildExtraConfigColumn(rawTable);
return [name, column];
}),
) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;
const table = Object.assign(rawTable, builtColumns);
table[Table.Symbol.Columns] = builtColumns;
table[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;
if (extraConfig) {
table[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;
}
return Object.assign(table, {
enableRLS: () => {
table[PgTable.Symbol.EnableRLS] = true;
return table as PgTableWithColumns<{
name: TTableName;
schema: TSchemaName;
columns: BuildColumns<TTableName, TColumnsMap, 'pg'>;
dialect: 'pg';
}>;
},
});
}
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does pgTableWithSchema() do?
pgTableWithSchema() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/table.ts.
Where is pgTableWithSchema() defined?
pgTableWithSchema() is defined in drizzle-orm/src/pg-core/table.ts at line 71.
What does pgTableWithSchema() call?
pgTableWithSchema() calls 1 function(s): getPgColumnBuilders.
What calls pgTableWithSchema()?
pgTableWithSchema() is called by 2 function(s): pgTable, pgTableCreator.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free