diffTestSchemasPush() — drizzle-orm Function Reference
Architecture documentation for the diffTestSchemasPush() function in schemaDiffer.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD e15327fc_6c47_0a22_5e26_e5f3a2056272["diffTestSchemasPush()"] fb6b4a65_030b_ce6b_df0d_2be21adcd2b3["schemaDiffer.ts"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|defined in| fb6b4a65_030b_ce6b_df0d_2be21adcd2b3 a9b90700_95b1_2733_ec44_94b71b29bd74["applyPgDiffs()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| a9b90700_95b1_2733_ec44_94b71b29bd74 eeae166f_7245_697c_8a12_79452338852b["testSchemasResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| eeae166f_7245_697c_8a12_79452338852b 6670774e_1db8_2949_ed84_d99556952a75["testEnumsResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| 6670774e_1db8_2949_ed84_d99556952a75 2522a128_f430_99e3_ea16_7c738fa66b11["testSequencesResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| 2522a128_f430_99e3_ea16_7c738fa66b11 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904["testPolicyResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904 34ec492e_618a_f328_80c2_00f216a2b9bb["testIndPolicyResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| 34ec492e_618a_f328_80c2_00f216a2b9bb a2b8feff_6977_e47d_0e40_9b276e533813["testRolesResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| a2b8feff_6977_e47d_0e40_9b276e533813 fd1b2256_62ed_ec7e_c677_9d8cbf56136b["testTablesResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| fd1b2256_62ed_ec7e_c677_9d8cbf56136b 96edd91d_9f30_fc37_cbd3_7c1229315b14["testColumnsResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| 96edd91d_9f30_fc37_cbd3_7c1229315b14 868985e6_2cbc_d514_e90b_6c5c650c0e1c["testViewsResolver()"] e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| 868985e6_2cbc_d514_e90b_6c5c650c0e1c style e15327fc_6c47_0a22_5e26_e5f3a2056272 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/tests/schemaDiffer.ts lines 940–1128
export const diffTestSchemasPush = async (
client: PGlite,
left: PostgresSchema,
right: PostgresSchema,
renamesArr: string[],
cli: boolean = false,
schemas: string[] = ['public'],
casing?: CasingType | undefined,
entities?: Entities,
sqlStatementsToRun: {
before?: string[];
after?: string[];
runApply?: boolean;
} = {
before: [],
after: [],
runApply: true,
},
) => {
const shouldRunApply = sqlStatementsToRun.runApply === undefined
? true
: sqlStatementsToRun.runApply;
for (const st of sqlStatementsToRun.before ?? []) {
await client.query(st);
}
if (shouldRunApply) {
const res = await applyPgDiffs(left, casing);
for (const st of res.sqlStatements) {
await client.query(st);
}
}
for (const st of sqlStatementsToRun.after ?? []) {
await client.query(st);
}
const materializedViewsForRefresh = Object.values(left).filter((it) =>
isPgMaterializedView(it)
) as PgMaterializedView[];
// refresh all mat views
for (const view of materializedViewsForRefresh) {
const viewConf = getMaterializedViewConfig(view);
if (viewConf.isExisting) continue;
await client.exec(
`REFRESH MATERIALIZED VIEW "${viewConf.schema ?? 'public'}"."${viewConf.name}"${
viewConf.withNoData ? ' WITH NO DATA;' : ';'
}`,
);
}
// do introspect into PgSchemaInternal
const introspectedSchema = await fromDatabase(
{
query: async (query: string, values?: any[] | undefined) => {
const res = await client.query(query, values);
return res.rows as any[];
},
},
undefined,
schemas,
entities,
);
const leftTables = Object.values(right).filter((it) => is(it, PgTable)) as PgTable[];
const leftSchemas = Object.values(right).filter((it) => is(it, PgSchema)) as PgSchema[];
const leftEnums = Object.values(right).filter((it) => isPgEnum(it)) as PgEnum<any>[];
const leftSequences = Object.values(right).filter((it) => isPgSequence(it)) as PgSequence[];
const leftRoles = Object.values(right).filter((it) => is(it, PgRole)) as PgRole[];
const leftPolicies = Object.values(right).filter((it) => is(it, PgPolicy)) as PgPolicy[];
const leftViews = Object.values(right).filter((it) => isPgView(it)) as PgView[];
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does diffTestSchemasPush() do?
diffTestSchemasPush() is a function in the drizzle-orm codebase, defined in drizzle-kit/tests/schemaDiffer.ts.
Where is diffTestSchemasPush() defined?
diffTestSchemasPush() is defined in drizzle-kit/tests/schemaDiffer.ts at line 940.
What does diffTestSchemasPush() call?
diffTestSchemasPush() calls 10 function(s): applyPgDiffs, testColumnsResolver, testEnumsResolver, testIndPolicyResolver, testPolicyResolver, testRolesResolver, testSchemasResolver, testSequencesResolver, and 2 more.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free