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 9c439714_8e39_1639_8142_88b4c0b4c345["ForeignKey"] 5ab311c5_4977_231c_634b_5190e6ed4054["foreign-keys.ts"] 9c439714_8e39_1639_8142_88b4c0b4c345 -->|defined in| 5ab311c5_4977_231c_634b_5190e6ed4054 f63b391f_211d_298e_7bc0_f1fa6375af56["constructor()"] 9c439714_8e39_1639_8142_88b4c0b4c345 -->|method| f63b391f_211d_298e_7bc0_f1fa6375af56 27454574_f5e4_c6c4_64e5_c4c02b3af3cf["getName()"] 9c439714_8e39_1639_8142_88b4c0b4c345 -->|method| 27454574_f5e4_c6c4_64e5_c4c02b3af3cf
Relationship Graph
Source Code
drizzle-orm/src/mysql-core/foreign-keys.ts lines 66–91
export class ForeignKey {
static readonly [entityKind]: string = 'MySqlForeignKey';
readonly reference: Reference;
readonly onUpdate: UpdateDeleteAction | undefined;
readonly onDelete: UpdateDeleteAction | undefined;
constructor(readonly table: MySqlTable, 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/mysql-core/foreign-keys.ts.
Where is ForeignKey defined?
ForeignKey is defined in drizzle-orm/src/mysql-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