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
  9d0c8b0b_4a31_bd3a_bd59_19586ec9f8d8["ForeignKey"]
  b9d8b4e3_8c35_6c97_3af0_a74313048074["foreign-keys.ts"]
  9d0c8b0b_4a31_bd3a_bd59_19586ec9f8d8 -->|defined in| b9d8b4e3_8c35_6c97_3af0_a74313048074
  82db7e08_d004_c00e_a210_0b7eccc5ffe4["constructor()"]
  9d0c8b0b_4a31_bd3a_bd59_19586ec9f8d8 -->|method| 82db7e08_d004_c00e_a210_0b7eccc5ffe4
  68eeca43_0d28_52b0_6793_9c22d90df1aa["getName()"]
  9d0c8b0b_4a31_bd3a_bd59_19586ec9f8d8 -->|method| 68eeca43_0d28_52b0_6793_9c22d90df1aa

Relationship Graph

Source Code

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

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

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

	constructor(readonly table: PgTable, 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/pg-core/foreign-keys.ts.
Where is ForeignKey defined?
ForeignKey is defined in drizzle-orm/src/pg-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