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

drizzleForPostgres() — drizzle-orm Function Reference

Architecture documentation for the drizzleForPostgres() function in studio.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  f115fdf8_009e_f0a5_2e08_c650dffd2496["drizzleForPostgres()"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01["studio.ts"]
  f115fdf8_009e_f0a5_2e08_c650dffd2496 -->|defined in| 82de12f8_a8ca_9d38_8da8_9ac945d81e01
  3f2f3ef6_5edc_28b2_d8ba_6463008848f8["startStudioPostgresServer()"]
  3f2f3ef6_5edc_28b2_d8ba_6463008848f8 -->|calls| f115fdf8_009e_f0a5_2e08_c650dffd2496
  72630e5c_93c3_75d3_29f3_af0928ebe15c["studio.handler()"]
  72630e5c_93c3_75d3_29f3_af0928ebe15c -->|calls| f115fdf8_009e_f0a5_2e08_c650dffd2496
  d7ecc303_7005_43ee_f3ad_fa9fa658b409["getCustomDefaults()"]
  f115fdf8_009e_f0a5_2e08_c650dffd2496 -->|calls| d7ecc303_7005_43ee_f3ad_fa9fa658b409
  style f115fdf8_009e_f0a5_2e08_c650dffd2496 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/serializer/studio.ts lines 278–325

export const drizzleForPostgres = async (
	credentials: PostgresCredentials | {
		driver: 'pglite';
		client: PGlite;
	},
	pgSchema: Record<string, Record<string, AnyPgTable>>,
	relations: Record<string, Relations>,
	schemaFiles?: SchemaFile[],
	casing?: CasingType,
): Promise<Setup> => {
	const { preparePostgresDB } = await import('../cli/connections');
	const db = await preparePostgresDB(credentials);
	const customDefaults = getCustomDefaults(pgSchema, casing);

	let dbUrl: string;

	if ('driver' in credentials) {
		const { driver } = credentials;
		if (driver === 'aws-data-api') {
			dbUrl = `aws-data-api://${credentials.database}/${credentials.secretArn}/${credentials.resourceArn}`;
		} else if (driver === 'pglite') {
			dbUrl = 'client' in credentials ? credentials.client.dataDir || 'pglite://custom-client' : credentials.url;
		} else {
			assertUnreachable(driver);
		}
	} else if ('url' in credentials) {
		dbUrl = credentials.url;
	} else {
		dbUrl =
			`postgresql://${credentials.user}:${credentials.password}@${credentials.host}:${credentials.port}/${credentials.database}`;
	}

	const dbHash = createHash('sha256').update(dbUrl).digest('hex');

	return {
		dbHash,
		dialect: 'postgresql',
		driver: 'driver' in credentials ? credentials.driver : undefined,
		packageName: db.packageName,
		proxy: db.proxy,
		transactionProxy: db.transactionProxy,
		customDefaults,
		schema: pgSchema,
		relations,
		schemaFiles,
		casing,
	};
};

Domain

Subdomains

Frequently Asked Questions

What does drizzleForPostgres() do?
drizzleForPostgres() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/serializer/studio.ts.
Where is drizzleForPostgres() defined?
drizzleForPostgres() is defined in drizzle-kit/src/serializer/studio.ts at line 278.
What does drizzleForPostgres() call?
drizzleForPostgres() calls 1 function(s): getCustomDefaults.
What calls drizzleForPostgres()?
drizzleForPostgres() is called by 2 function(s): startStudioPostgresServer, studio.handler.

Analyze Your Own Codebase

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

Try Supermodel Free