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
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/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