LibSQLModifyColumn Class — drizzle-orm Architecture
Architecture documentation for the LibSQLModifyColumn class in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD e496d264_ffa3_db83_0260_fdca9d4f91a7["LibSQLModifyColumn"] fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] e496d264_ffa3_db83_0260_fdca9d4f91a7 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939 b355592e_9209_fc2a_66fc_f71dc6710dc4["can()"] e496d264_ffa3_db83_0260_fdca9d4f91a7 -->|method| b355592e_9209_fc2a_66fc_f71dc6710dc4 13e3b282_1a64_a447_67c6_680e36ab6da1["convert()"] e496d264_ffa3_db83_0260_fdca9d4f91a7 -->|method| 13e3b282_1a64_a447_67c6_680e36ab6da1
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 2376–2482
export class LibSQLModifyColumn extends Convertor {
can(statement: JsonStatement, dialect: Dialect): boolean {
return (
(statement.type === 'alter_table_alter_column_set_type'
|| statement.type === 'alter_table_alter_column_drop_notnull'
|| statement.type === 'alter_table_alter_column_set_notnull'
|| statement.type === 'alter_table_alter_column_set_default'
|| statement.type === 'alter_table_alter_column_drop_default'
|| statement.type === 'create_check_constraint'
|| statement.type === 'delete_check_constraint')
&& dialect === 'turso'
);
}
convert(statement: LibSQLModifyColumnStatement, json2: SQLiteSchemaSquashed) {
const { tableName, columnName } = statement;
let columnType = ``;
let columnDefault: any = '';
let columnNotNull = '';
const sqlStatements: string[] = [];
// collect index info
const indexes: {
name: string;
tableName: string;
columns: string[];
isUnique: boolean;
where?: string | undefined;
}[] = [];
for (const table of Object.values(json2.tables)) {
for (const index of Object.values(table.indexes)) {
const unsquashed = SQLiteSquasher.unsquashIdx(index);
sqlStatements.push(`DROP INDEX "${unsquashed.name}";`);
indexes.push({ ...unsquashed, tableName: table.name });
}
}
switch (statement.type) {
case 'alter_table_alter_column_set_type':
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
? ` DEFAULT ${statement.columnDefault}`
: '';
columnNotNull = statement.columnNotNull ? ` NOT NULL` : '';
break;
case 'alter_table_alter_column_drop_notnull':
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
? ` DEFAULT ${statement.columnDefault}`
: '';
columnNotNull = '';
break;
case 'alter_table_alter_column_set_notnull':
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
? ` DEFAULT ${statement.columnDefault}`
: '';
columnNotNull = ` NOT NULL`;
break;
case 'alter_table_alter_column_set_default':
columnType = ` ${statement.newDataType}`;
columnDefault = ` DEFAULT ${statement.newDefaultValue}`;
columnNotNull = statement.columnNotNull ? ` NOT NULL` : '';
break;
case 'alter_table_alter_column_drop_default':
columnType = ` ${statement.newDataType}`;
columnDefault = '';
columnNotNull = statement.columnNotNull ? ` NOT NULL` : '';
Domain
Defined In
Source
Frequently Asked Questions
What is the LibSQLModifyColumn class?
LibSQLModifyColumn is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is LibSQLModifyColumn defined?
LibSQLModifyColumn is defined in drizzle-kit/src/sqlgenerator.ts at line 2376.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free