introspectPostgres() — drizzle-orm Function Reference
Architecture documentation for the introspectPostgres() function in introspect.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD d532b567_3dc6_7be3_0c7e_e6f3a15eddff["introspectPostgres()"] c2c22050_0d5c_404e_2b18_5934c728a89c["introspect.ts"] d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|defined in| c2c22050_0d5c_404e_2b18_5934c728a89c db0c397a_220a_c404_bea0_7813784bf108["update()"] d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|calls| db0c397a_220a_c404_bea0_7813784bf108 d34d3e87_b168_fea6_ac14_fef2ffdc1654["relationsToTypeScript()"] d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|calls| d34d3e87_b168_fea6_ac14_fef2ffdc1654 3f325b6b_14df_fa20_c5d7_83c98bc3d75c["prepareOutFolder()"] d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|calls| 3f325b6b_14df_fa20_c5d7_83c98bc3d75c c7a398db_43c9_7771_09b7_73bc09e703e8["applyPgSnapshotsDiff()"] d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|calls| c7a398db_43c9_7771_09b7_73bc09e703e8 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0["squashPgScheme()"] d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0 cb2d3951_4fcb_d824_359b_9f044d2f7e6c["writeResult()"] d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|calls| cb2d3951_4fcb_d824_359b_9f044d2f7e6c style d532b567_3dc6_7be3_0c7e_e6f3a15eddff fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/cli/commands/introspect.ts lines 55–179
export const introspectPostgres = async (
casing: Casing,
out: string,
breakpoints: boolean,
credentials: PostgresCredentials,
tablesFilter: string[],
schemasFilter: string[],
prefix: Prefix,
entities: Entities,
) => {
const { preparePostgresDB } = await import('../connections');
const db = await preparePostgresDB(credentials);
const matchers = tablesFilter.map((it) => {
return new Minimatch(it);
});
const filter = (tableName: string) => {
if (matchers.length === 0) return true;
let flags: boolean[] = [];
for (let matcher of matchers) {
if (matcher.negate) {
if (!matcher.match(tableName)) {
flags.push(false);
}
}
if (matcher.match(tableName)) {
flags.push(true);
}
}
if (flags.length > 0) {
return flags.every(Boolean);
}
return false;
};
const progress = new IntrospectProgress(true);
const res = await renderWithTask(
progress,
fromPostgresDatabase(
db,
filter,
schemasFilter,
entities,
(stage, count, status) => {
progress.update(stage, count, status);
},
),
);
const schema = { id: originUUID, prevId: '', ...res } as PgSchema;
const ts = postgresSchemaToTypeScript(schema, casing);
const relationsTs = relationsToTypeScript(schema, casing);
const { internal, ...schemaWithoutInternals } = schema;
const schemaFile = join(out, 'schema.ts');
writeFileSync(schemaFile, ts.file);
const relationsFile = join(out, 'relations.ts');
writeFileSync(relationsFile, relationsTs.file);
console.log();
const { snapshots, journal } = prepareOutFolder(out, 'postgresql');
if (snapshots.length === 0) {
const { sqlStatements, _meta } = await applyPgSnapshotsDiff(
squashPgScheme(dryPg),
squashPgScheme(schema),
schemasResolver,
enumsResolver,
sequencesResolver,
policyResolver,
indPolicyResolver,
roleResolver,
tablesResolver,
columnsResolver,
viewsResolver,
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does introspectPostgres() do?
introspectPostgres() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/cli/commands/introspect.ts.
Where is introspectPostgres() defined?
introspectPostgres() is defined in drizzle-kit/src/cli/commands/introspect.ts at line 55.
What does introspectPostgres() call?
introspectPostgres() calls 6 function(s): applyPgSnapshotsDiff, prepareOutFolder, relationsToTypeScript, squashPgScheme, update, writeResult.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free