Home / Function/ applyPgDiffs() — drizzle-orm Function Reference

applyPgDiffs() — drizzle-orm Function Reference

Architecture documentation for the applyPgDiffs() function in schemaDiffer.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  a9b90700_95b1_2733_ec44_94b71b29bd74["applyPgDiffs()"]
  fb6b4a65_030b_ce6b_df0d_2be21adcd2b3["schemaDiffer.ts"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|defined in| fb6b4a65_030b_ce6b_df0d_2be21adcd2b3
  e15327fc_6c47_0a22_5e26_e5f3a2056272["diffTestSchemasPush()"]
  e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| a9b90700_95b1_2733_ec44_94b71b29bd74
  099eb17b_7dab_5785_cbf8_b861b392a028["introspectPgToFile()"]
  099eb17b_7dab_5785_cbf8_b861b392a028 -->|calls| a9b90700_95b1_2733_ec44_94b71b29bd74
  eeae166f_7245_697c_8a12_79452338852b["testSchemasResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| eeae166f_7245_697c_8a12_79452338852b
  6670774e_1db8_2949_ed84_d99556952a75["testEnumsResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| 6670774e_1db8_2949_ed84_d99556952a75
  2522a128_f430_99e3_ea16_7c738fa66b11["testSequencesResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| 2522a128_f430_99e3_ea16_7c738fa66b11
  5c0a54e1_d2f8_ab8d_7ce4_e9a683283904["testPolicyResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904
  34ec492e_618a_f328_80c2_00f216a2b9bb["testIndPolicyResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| 34ec492e_618a_f328_80c2_00f216a2b9bb
  a2b8feff_6977_e47d_0e40_9b276e533813["testRolesResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| a2b8feff_6977_e47d_0e40_9b276e533813
  fd1b2256_62ed_ec7e_c677_9d8cbf56136b["testTablesResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| fd1b2256_62ed_ec7e_c677_9d8cbf56136b
  96edd91d_9f30_fc37_cbd3_7c1229315b14["testColumnsResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| 96edd91d_9f30_fc37_cbd3_7c1229315b14
  868985e6_2cbc_d514_e90b_6c5c650c0e1c["testViewsResolver()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| 868985e6_2cbc_d514_e90b_6c5c650c0e1c
  style a9b90700_95b1_2733_ec44_94b71b29bd74 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/tests/schemaDiffer.ts lines 1130–1212

export const applyPgDiffs = async (
	sn: PostgresSchema,
	casing: CasingType | undefined,
) => {
	const dryRun = {
		version: '7',
		dialect: 'postgresql',
		id: '0',
		prevId: '0',
		tables: {},
		enums: {},
		views: {},
		schemas: {},
		sequences: {},
		policies: {},
		roles: {},
		_meta: {
			schemas: {},
			tables: {},
			columns: {},
		},
	} as const;

	const tables = Object.values(sn).filter((it) => is(it, PgTable)) as PgTable[];

	const schemas = Object.values(sn).filter((it) => is(it, PgSchema)) as PgSchema[];

	const enums = Object.values(sn).filter((it) => isPgEnum(it)) as PgEnum<any>[];

	const sequences = Object.values(sn).filter((it) => isPgSequence(it)) as PgSequence[];

	const roles = Object.values(sn).filter((it) => is(it, PgRole)) as PgRole[];

	const views = Object.values(sn).filter((it) => isPgView(it)) as PgView[];

	const policies = Object.values(sn).filter((it) => is(it, PgPolicy)) as PgPolicy[];

	const materializedViews = Object.values(sn).filter((it) => isPgMaterializedView(it)) as PgMaterializedView[];

	const serialized1 = generatePgSnapshot(
		tables,
		enums,
		schemas,
		sequences,
		roles,
		policies,
		views,
		materializedViews,
		casing,
	);

	const { version: v1, dialect: d1, ...rest1 } = serialized1;

	const sch1 = {
		version: '7',
		dialect: 'postgresql',
		id: '0',
		prevId: '0',
		...rest1,
	} as const;

	const sn1 = squashPgScheme(sch1);

	const validatedPrev = pgSchema.parse(dryRun);
	const validatedCur = pgSchema.parse(sch1);

	const { sqlStatements, statements } = await applyPgSnapshotsDiff(
		dryRun,
		sn1,
		testSchemasResolver(new Set()),
		testEnumsResolver(new Set()),
		testSequencesResolver(new Set()),
		testPolicyResolver(new Set()),
		testIndPolicyResolver(new Set()),
		testRolesResolver(new Set()),
		testTablesResolver(new Set()),
		testColumnsResolver(new Set()),
		testViewsResolver(new Set()),
		validatedPrev,
		validatedCur,
	);

Domain

Subdomains

Frequently Asked Questions

What does applyPgDiffs() do?
applyPgDiffs() is a function in the drizzle-orm codebase, defined in drizzle-kit/tests/schemaDiffer.ts.
Where is applyPgDiffs() defined?
applyPgDiffs() is defined in drizzle-kit/tests/schemaDiffer.ts at line 1130.
What does applyPgDiffs() call?
applyPgDiffs() calls 9 function(s): testColumnsResolver, testEnumsResolver, testIndPolicyResolver, testPolicyResolver, testRolesResolver, testSchemasResolver, testSequencesResolver, testTablesResolver, and 1 more.
What calls applyPgDiffs()?
applyPgDiffs() is called by 2 function(s): diffTestSchemasPush, introspectPgToFile.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free