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 e14e02a6_4273_1b91_e67d_8b5bbffd1bcc["ForeignKey"] fab980e5_64f0_d7af_6cbf_9d6014d326a4["foreign-keys.ts"] e14e02a6_4273_1b91_e67d_8b5bbffd1bcc -->|defined in| fab980e5_64f0_d7af_6cbf_9d6014d326a4 f1d2010f_29f2_99c0_88e8_a6f43b87a9a7["constructor()"] e14e02a6_4273_1b91_e67d_8b5bbffd1bcc -->|method| f1d2010f_29f2_99c0_88e8_a6f43b87a9a7 848c0766_a0f7_a0c3_0f2e_e43969e37161["getName()"] e14e02a6_4273_1b91_e67d_8b5bbffd1bcc -->|method| 848c0766_a0f7_a0c3_0f2e_e43969e37161
Relationship Graph
Source Code
drizzle-orm/src/sqlite-core/foreign-keys.ts lines 69–94
export class ForeignKey {
static readonly [entityKind]: string = 'SQLiteForeignKey';
readonly reference: Reference;
readonly onUpdate: UpdateDeleteAction | undefined;
readonly onDelete: UpdateDeleteAction | undefined;
constructor(readonly table: SQLiteTable, 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/sqlite-core/foreign-keys.ts.
Where is ForeignKey defined?
ForeignKey is defined in drizzle-orm/src/sqlite-core/foreign-keys.ts at line 69.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free