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

introspectPgToFile() — drizzle-orm Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

drizzle-kit/tests/schemaDiffer.ts lines 2303–2403

export const introspectPgToFile = async (
	client: PGlite,
	initSchema: PostgresSchema,
	testName: string,
	schemas: string[] = ['public'],
	entities?: Entities,
	casing?: CasingType | undefined,
) => {
	// put in db
	const { sqlStatements } = await applyPgDiffs(initSchema, casing);
	for (const st of sqlStatements) {
		await client.query(st);
	}

	// introspect to schema
	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 { version: initV, dialect: initD, ...initRest } = introspectedSchema;

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

	const initSn = squashPgScheme(initSch);
	const validatedCur = pgSchema.parse(initSch);

	// write to ts file
	const file = schemaToTypeScript(introspectedSchema, 'camel');

	fs.writeFileSync(`tests/introspect/postgres/${testName}.ts`, file.file);

	// generate snapshot from ts file
	const response = await prepareFromPgImports([
		`tests/introspect/postgres/${testName}.ts`,
	]);

	const afterFileImports = generatePgSnapshot(
		response.tables,
		response.enums,
		response.schemas,
		response.sequences,
		response.roles,
		response.policies,
		response.views,
		response.matViews,
		casing,
	);

	const { version: v2, dialect: d2, ...rest2 } = afterFileImports;

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

	const sn2AfterIm = squashPgScheme(sch2);
	const validatedCurAfterImport = pgSchema.parse(sch2);

	const {
		sqlStatements: afterFileSqlStatements,
		statements: afterFileStatements,
	} = await applyPgSnapshotsDiff(
		initSn,
		sn2AfterIm,

Domain

Subdomains

Frequently Asked Questions

What does introspectPgToFile() do?
introspectPgToFile() is a function in the drizzle-orm codebase, defined in drizzle-kit/tests/schemaDiffer.ts.
Where is introspectPgToFile() defined?
introspectPgToFile() is defined in drizzle-kit/tests/schemaDiffer.ts at line 2303.
What does introspectPgToFile() call?
introspectPgToFile() 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