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

squashPgScheme() — drizzle-orm Function Reference

Architecture documentation for the squashPgScheme() function in pgSchema.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  60cccf3e_0a08_14d7_0d22_dfaeb6777eb0["squashPgScheme()"]
  cbf63853_6723_30fc_5ded_88a8944f77c4["pgSchema.ts"]
  60cccf3e_0a08_14d7_0d22_dfaeb6777eb0 -->|defined in| cbf63853_6723_30fc_5ded_88a8944f77c4
  9be8a94f_0ac5_3586_c117_3bc214e2beff["generateMigration()"]
  9be8a94f_0ac5_3586_c117_3bc214e2beff -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0
  4c61650e_7f36_043b_24cd_0e5119e86678["pushSchema()"]
  4c61650e_7f36_043b_24cd_0e5119e86678 -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0
  d532b567_3dc6_7be3_0c7e_e6f3a15eddff["introspectPostgres()"]
  d532b567_3dc6_7be3_0c7e_e6f3a15eddff -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0
  285d7baa_1c76_20e1_0c68_26eaff3a4a05["prepareAndMigratePg()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0
  4e596a62_7d9b_59ea_a118_46bc45866220["prepareAndExportPg()"]
  4e596a62_7d9b_59ea_a118_46bc45866220 -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0
  64dd46c3_600a_69ef_c92f_904881477e81["preparePgPush()"]
  64dd46c3_600a_69ef_c92f_904881477e81 -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0
  920ff56d_9b78_d6a4_9c81_c1e6a3d1d992["mapValues()"]
  60cccf3e_0a08_14d7_0d22_dfaeb6777eb0 -->|calls| 920ff56d_9b78_d6a4_9c81_c1e6a3d1d992
  style 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/serializer/pgSchema.ts lines 758–868

export const squashPgScheme = (
	json: PgSchema,
	action?: 'push' | undefined,
): PgSchemaSquashed => {
	const mappedTables = Object.fromEntries(
		Object.entries(json.tables).map((it) => {
			const squashedIndexes = mapValues(it[1].indexes, (index) => {
				return action === 'push'
					? PgSquasher.squashIdxPush(index)
					: PgSquasher.squashIdx(index);
			});

			const squashedFKs = mapValues(it[1].foreignKeys, (fk) => {
				return PgSquasher.squashFK(fk);
			});

			const squashedPKs = mapValues(it[1].compositePrimaryKeys, (pk) => {
				return PgSquasher.squashPK(pk);
			});

			const mappedColumns = Object.fromEntries(
				Object.entries(it[1].columns).map((it) => {
					const mappedIdentity = it[1].identity
						? PgSquasher.squashIdentity(it[1].identity)
						: undefined;
					return [
						it[0],
						{
							...it[1],
							identity: mappedIdentity,
						},
					];
				}),
			);

			const squashedUniqueConstraints = mapValues(
				it[1].uniqueConstraints,
				(unq) => {
					return PgSquasher.squashUnique(unq);
				},
			);

			const squashedPolicies = mapValues(it[1].policies, (policy) => {
				return action === 'push'
					? PgSquasher.squashPolicyPush(policy)
					: PgSquasher.squashPolicy(policy);
			});
			const squashedChecksContraints = mapValues(
				it[1].checkConstraints,
				(check) => {
					return PgSquasher.squashCheck(check);
				},
			);

			return [
				it[0],
				{
					name: it[1].name,
					schema: it[1].schema,
					columns: mappedColumns,
					indexes: squashedIndexes,
					foreignKeys: squashedFKs,
					compositePrimaryKeys: squashedPKs,
					uniqueConstraints: squashedUniqueConstraints,
					policies: squashedPolicies,
					checkConstraints: squashedChecksContraints,
					isRLSEnabled: it[1].isRLSEnabled ?? false,
				},
			];
		}),
	);

	const mappedSequences = Object.fromEntries(
		Object.entries(json.sequences).map((it) => {
			return [
				it[0],
				{
					name: it[1].name,
					schema: it[1].schema,
					values: PgSquasher.squashSequence(it[1]),
				},

Domain

Subdomains

Calls

Frequently Asked Questions

What does squashPgScheme() do?
squashPgScheme() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/serializer/pgSchema.ts.
Where is squashPgScheme() defined?
squashPgScheme() is defined in drizzle-kit/src/serializer/pgSchema.ts at line 758.
What does squashPgScheme() call?
squashPgScheme() calls 1 function(s): mapValues.
What calls squashPgScheme()?
squashPgScheme() is called by 6 function(s): generateMigration, introspectPostgres, prepareAndExportPg, prepareAndMigratePg, preparePgPush, pushSchema.

Analyze Your Own Codebase

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

Try Supermodel Free