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