PgCreateForeignKeyConvertor Class — drizzle-orm Architecture
Architecture documentation for the PgCreateForeignKeyConvertor class in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD dfac4a5d_36ae_b8c8_4fb9_d9bcdc7a3476["PgCreateForeignKeyConvertor"] fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] dfac4a5d_36ae_b8c8_4fb9_d9bcdc7a3476 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939 9e773461_8d54_ac6c_87b1_a679b2d6df1e["can()"] dfac4a5d_36ae_b8c8_4fb9_d9bcdc7a3476 -->|method| 9e773461_8d54_ac6c_87b1_a679b2d6df1e 078c88fa_f691_a84d_c9f4_057d7c1836f5["convert()"] dfac4a5d_36ae_b8c8_4fb9_d9bcdc7a3476 -->|method| 078c88fa_f691_a84d_c9f4_057d7c1836f5
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 3333–3367
class PgCreateForeignKeyConvertor extends Convertor {
can(statement: JsonStatement, dialect: Dialect): boolean {
return statement.type === 'create_reference' && dialect === 'postgresql';
}
convert(statement: JsonCreateReferenceStatement): string {
const {
name,
tableFrom,
tableTo,
columnsFrom,
columnsTo,
onDelete,
onUpdate,
schemaTo,
} = PgSquasher.unsquashFK(statement.data);
const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : '';
const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : '';
const fromColumnsString = columnsFrom.map((it) => `"${it}"`).join(',');
const toColumnsString = columnsTo.map((it) => `"${it}"`).join(',');
const tableNameWithSchema = statement.schema
? `"${statement.schema}"."${tableFrom}"`
: `"${tableFrom}"`;
const tableToNameWithSchema = schemaTo
? `"${schemaTo}"."${tableTo}"`
: `"${tableTo}"`;
const alterStatement =
`ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${name}" FOREIGN KEY (${fromColumnsString}) REFERENCES ${tableToNameWithSchema}(${toColumnsString})${onDeleteStatement}${onUpdateStatement};`;
return alterStatement;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the PgCreateForeignKeyConvertor class?
PgCreateForeignKeyConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is PgCreateForeignKeyConvertor defined?
PgCreateForeignKeyConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 3333.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free