Home / Class/ ForeignKey Class — drizzle-orm Architecture

ForeignKey Class — drizzle-orm Architecture

Architecture documentation for the ForeignKey class in foreign-keys.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  73e29a69_cd8c_3513_4994_53e49eddb654["ForeignKey"]
  fe0bf683_1731_529c_f1b4_81cc9db56955["foreign-keys.ts"]
  73e29a69_cd8c_3513_4994_53e49eddb654 -->|defined in| fe0bf683_1731_529c_f1b4_81cc9db56955
  2a1b0141_c757_adbd_acdc_538fe2d453b7["constructor()"]
  73e29a69_cd8c_3513_4994_53e49eddb654 -->|method| 2a1b0141_c757_adbd_acdc_538fe2d453b7
  05ffbc57_235f_78fa_087e_644883ce2d6d["getName()"]
  73e29a69_cd8c_3513_4994_53e49eddb654 -->|method| 05ffbc57_235f_78fa_087e_644883ce2d6d

Relationship Graph

Source Code

drizzle-orm/src/gel-core/foreign-keys.ts lines 66–91

export class ForeignKey {
	static readonly [entityKind]: string = 'GelForeignKey';

	readonly reference: Reference;
	readonly onUpdate: UpdateDeleteAction | undefined;
	readonly onDelete: UpdateDeleteAction | undefined;

	constructor(readonly table: GelTable, builder: ForeignKeyBuilder) {
		this.reference = builder.reference;
		this.onUpdate = builder._onUpdate;
		this.onDelete = builder._onDelete;
	}

	getName(): string {
		const { name, columns, foreignColumns } = this.reference();
		const columnNames = columns.map((column) => column.name);
		const foreignColumnNames = foreignColumns.map((column) => column.name);
		const chunks = [
			this.table[TableName],
			...columnNames,
			foreignColumns[0]!.table[TableName],
			...foreignColumnNames,
		];
		return name ?? `${chunks.join('_')}_fk`;
	}
}

Domain

Frequently Asked Questions

What is the ForeignKey class?
ForeignKey is a class in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/foreign-keys.ts.
Where is ForeignKey defined?
ForeignKey is defined in drizzle-orm/src/gel-core/foreign-keys.ts at line 66.

Analyze Your Own Codebase

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

Try Supermodel Free