LibSQLCreateForeignKeyConvertor Class — drizzle-orm Architecture
Architecture documentation for the LibSQLCreateForeignKeyConvertor class in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD cc230e3a_5094_8f78_f677_c2c8e9f510a0["LibSQLCreateForeignKeyConvertor"] fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] cc230e3a_5094_8f78_f677_c2c8e9f510a0 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939 14bb06bf_7519_9675_3fb4_77a59482b5bd["can()"] cc230e3a_5094_8f78_f677_c2c8e9f510a0 -->|method| 14bb06bf_7519_9675_3fb4_77a59482b5bd 9bda6163_ef7b_3f92_031e_0bd4435fc770["convert()"] cc230e3a_5094_8f78_f677_c2c8e9f510a0 -->|method| 9bda6163_ef7b_3f92_031e_0bd4435fc770
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 3369–3400
class LibSQLCreateForeignKeyConvertor extends Convertor {
can(statement: JsonStatement, dialect: Dialect): boolean {
return (
statement.type === 'create_reference'
&& dialect === 'turso'
);
}
convert(
statement: JsonCreateReferenceStatement,
json2?: SQLiteSchemaSquashed,
action?: 'push',
): string {
const { columnsFrom, columnsTo, tableFrom, onDelete, onUpdate, tableTo } = action === 'push'
? SQLiteSquasher.unsquashPushFK(statement.data)
: SQLiteSquasher.unsquashFK(statement.data);
const { columnDefault, columnNotNull, columnType } = statement;
const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : '';
const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : '';
const columnsDefaultValue = columnDefault
? ` DEFAULT ${columnDefault}`
: '';
const columnNotNullValue = columnNotNull ? ` NOT NULL` : '';
const columnTypeValue = columnType ? ` ${columnType}` : '';
const columnFrom = columnsFrom[0];
const columnTo = columnsTo[0];
return `ALTER TABLE \`${tableFrom}\` ALTER COLUMN "${columnFrom}" TO "${columnFrom}"${columnTypeValue}${columnNotNullValue}${columnsDefaultValue} REFERENCES ${tableTo}(${columnTo})${onDeleteStatement}${onUpdateStatement};`;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the LibSQLCreateForeignKeyConvertor class?
LibSQLCreateForeignKeyConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is LibSQLCreateForeignKeyConvertor defined?
LibSQLCreateForeignKeyConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 3369.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free