getPostgresInfo() — drizzle-orm Function Reference
Architecture documentation for the getPostgresInfo() function in index.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD a33c8a66_8c96_661c_8767_a3a71961208b["getPostgresInfo()"] 0fabdd81_61c9_bb7c_7ddf_dde7a6071abc["index.ts"] a33c8a66_8c96_661c_8767_a3a71961208b -->|defined in| 0fabdd81_61c9_bb7c_7ddf_dde7a6071abc 04837fc4_7ade_b181_1078_adb2a83fd135["seedPostgres()"] 04837fc4_7ade_b181_1078_adb2a83fd135 -->|calls| a33c8a66_8c96_661c_8767_a3a71961208b d8406fd4_31dc_5e40_765e_d2ea7f0d3134["isRelationCyclic()"] a33c8a66_8c96_661c_8767_a3a71961208b -->|calls| d8406fd4_31dc_5e40_765e_d2ea7f0d3134 style a33c8a66_8c96_661c_8767_a3a71961208b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-seed/src/index.ts lines 571–830
const getPostgresInfo = (
pgSchema: { [key: string]: PgTable | Relations },
pgTables: { [key: string]: PgTable },
) => {
let tableConfig: ReturnType<typeof getPgTableConfig>;
let dbToTsColumnNamesMap: { [key: string]: string };
const dbToTsTableNamesMap: { [key: string]: string } = Object.fromEntries(
Object.entries(pgTables).map(([key, value]) => [getTableName(value), key]),
);
const tables: Table[] = [];
const relations: RelationWithReferences[] = [];
const dbToTsColumnNamesMapGlobal: {
[tableName: string]: { [dbColumnName: string]: string };
} = {};
const tableRelations: { [tableName: string]: RelationWithReferences[] } = {};
const getDbToTsColumnNamesMap = (table: PgTable) => {
let dbToTsColumnNamesMap: { [dbColName: string]: string } = {};
const tableName = getTableName(table);
if (Object.hasOwn(dbToTsColumnNamesMapGlobal, tableName)) {
dbToTsColumnNamesMap = dbToTsColumnNamesMapGlobal[tableName]!;
return dbToTsColumnNamesMap;
}
const tableConfig = getPgTableConfig(table);
for (const [tsCol, col] of Object.entries(tableConfig.columns[0]!.table)) {
dbToTsColumnNamesMap[col.name] = tsCol;
}
dbToTsColumnNamesMapGlobal[tableName] = dbToTsColumnNamesMap;
return dbToTsColumnNamesMap;
};
const transformFromDrizzleRelation = (
schema: Record<string, PgTable | Relations>,
getDbToTsColumnNamesMap: (table: PgTable) => {
[dbColName: string]: string;
},
tableRelations: {
[tableName: string]: RelationWithReferences[];
},
) => {
const schemaConfig = extractTablesRelationalConfig(schema, createTableRelationsHelpers);
const relations: RelationWithReferences[] = [];
for (const table of Object.values(schemaConfig.tables)) {
if (table.relations === undefined) continue;
for (const drizzleRel of Object.values(table.relations)) {
if (!is(drizzleRel, One)) continue;
const tableConfig = getPgTableConfig(drizzleRel.sourceTable as PgTable);
const tableDbSchema = tableConfig.schema ?? 'public';
const tableDbName = tableConfig.name;
const tableTsName = schemaConfig.tableNamesMap[`${tableDbSchema}.${tableDbName}`] ?? tableDbName;
const dbToTsColumnNamesMap = getDbToTsColumnNamesMap(drizzleRel.sourceTable);
const columns = drizzleRel.config?.fields.map((field) => dbToTsColumnNamesMap[field.name] as string)
?? [];
const refTableConfig = getPgTableConfig(drizzleRel.referencedTable as PgTable);
const refTableDbSchema = refTableConfig.schema ?? 'public';
const refTableDbName = refTableConfig.name;
const refTableTsName = schemaConfig.tableNamesMap[`${refTableDbSchema}.${refTableDbName}`]
?? refTableDbName;
const dbToTsColumnNamesMapForRefTable = getDbToTsColumnNamesMap(drizzleRel.referencedTable);
const refColumns = drizzleRel.config?.references.map((ref) =>
dbToTsColumnNamesMapForRefTable[ref.name] as string
)
?? [];
if (tableRelations[refTableTsName] === undefined) {
tableRelations[refTableTsName] = [];
}
const relation: RelationWithReferences = {
table: tableTsName,
columns,
refTable: refTableTsName,
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does getPostgresInfo() do?
getPostgresInfo() is a function in the drizzle-orm codebase, defined in drizzle-seed/src/index.ts.
Where is getPostgresInfo() defined?
getPostgresInfo() is defined in drizzle-seed/src/index.ts at line 571.
What does getPostgresInfo() call?
getPostgresInfo() calls 1 function(s): isRelationCyclic.
What calls getPostgresInfo()?
getPostgresInfo() is called by 1 function(s): seedPostgres.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free