pushSchema() — drizzle-orm Function Reference
Architecture documentation for the pushSchema() function in api.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 4c61650e_7f36_043b_24cd_0e5119e86678["pushSchema()"] e668bfef_9125_1ef0_2f94_a0f9605584bd["api.ts"] 4c61650e_7f36_043b_24cd_0e5119e86678 -->|defined in| e668bfef_9125_1ef0_2f94_a0f9605584bd 7fb12b1c_5cdb_dd13_4400_ed9f468b6c93["getTablesFilterByExtensions()"] 4c61650e_7f36_043b_24cd_0e5119e86678 -->|calls| 7fb12b1c_5cdb_dd13_4400_ed9f468b6c93 2de6d3a5_f3ce_a0e2_343b_91dc72274330["generateDrizzleJson()"] 4c61650e_7f36_043b_24cd_0e5119e86678 -->|calls| 2de6d3a5_f3ce_a0e2_343b_91dc72274330 6109e4f5_b41c_e1f5_46f4_31f100453ba2["pgPushIntrospect()"] 4c61650e_7f36_043b_24cd_0e5119e86678 -->|calls| 6109e4f5_b41c_e1f5_46f4_31f100453ba2 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0["squashPgScheme()"] 4c61650e_7f36_043b_24cd_0e5119e86678 -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0 99a768a1_158f_61ad_5701_374c946e2765["pgSuggestions()"] 4c61650e_7f36_043b_24cd_0e5119e86678 -->|calls| 99a768a1_158f_61ad_5701_374c946e2765 style 4c61650e_7f36_043b_24cd_0e5119e86678 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/api.ts lines 125–188
export const pushSchema = async (
imports: Record<string, unknown>,
drizzleInstance: PgDatabase<any>,
schemaFilters?: string[],
tablesFilter?: string[],
extensionsFilters?: Config['extensionsFilters'],
) => {
const { applyPgSnapshotsDiff } = await import('./snapshotsDiffer');
const { sql } = await import('drizzle-orm');
const filters = (tablesFilter ?? []).concat(
getTablesFilterByExtensions({ extensionsFilters, dialect: 'postgresql' }),
);
const db: DB = {
query: async (query: string, params?: any[]) => {
const res = await drizzleInstance.execute(sql.raw(query));
return res.rows;
},
};
const cur = generateDrizzleJson(imports);
const { schema: prev } = await pgPushIntrospect(
db,
filters,
schemaFilters ?? ['public'],
undefined,
);
const validatedPrev = pgSchema.parse(prev);
const validatedCur = pgSchema.parse(cur);
const squashedPrev = squashPgScheme(validatedPrev, 'push');
const squashedCur = squashPgScheme(validatedCur, 'push');
const { statements } = await applyPgSnapshotsDiff(
squashedPrev,
squashedCur,
schemasResolver,
enumsResolver,
sequencesResolver,
policyResolver,
indPolicyResolver,
roleResolver,
tablesResolver,
columnsResolver,
viewsResolver,
validatedPrev,
validatedCur,
'push',
);
const { shouldAskForApprove, statementsToExecute, infoToPrint } = await pgSuggestions(db, statements);
return {
hasDataLoss: shouldAskForApprove,
warnings: infoToPrint,
statementsToExecute,
apply: async () => {
for (const dStmnt of statementsToExecute) {
await db.query(dStmnt);
}
},
};
};
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does pushSchema() do?
pushSchema() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/api.ts.
Where is pushSchema() defined?
pushSchema() is defined in drizzle-kit/src/api.ts at line 125.
What does pushSchema() call?
pushSchema() calls 5 function(s): generateDrizzleJson, getTablesFilterByExtensions, pgPushIntrospect, pgSuggestions, squashPgScheme.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free