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
Defined In
Source
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