MySqlModifyColumn Class — drizzle-orm Architecture
Architecture documentation for the MySqlModifyColumn class in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD e9262e29_df52_3ebc_45d7_62792f1e6364["MySqlModifyColumn"] fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] e9262e29_df52_3ebc_45d7_62792f1e6364 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939 4f449f33_20f0_bf2a_1687_49996b2b4c47["can()"] e9262e29_df52_3ebc_45d7_62792f1e6364 -->|method| 4f449f33_20f0_bf2a_1687_49996b2b4c47 beb4977e_c009_3afe_e261_4de755b1eb04["convert()"] e9262e29_df52_3ebc_45d7_62792f1e6364 -->|method| beb4977e_c009_3afe_e261_4de755b1eb04
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 2497–2717
class MySqlModifyColumn extends Convertor {
can(statement: JsonStatement, dialect: Dialect): boolean {
return (
(statement.type === 'alter_table_alter_column_set_type'
|| statement.type === 'alter_table_alter_column_set_notnull'
|| statement.type === 'alter_table_alter_column_drop_notnull'
|| statement.type === 'alter_table_alter_column_drop_on_update'
|| statement.type === 'alter_table_alter_column_set_on_update'
|| statement.type === 'alter_table_alter_column_set_autoincrement'
|| statement.type === 'alter_table_alter_column_drop_autoincrement'
|| statement.type === 'alter_table_alter_column_set_default'
|| statement.type === 'alter_table_alter_column_drop_default'
|| statement.type === 'alter_table_alter_column_set_generated'
|| statement.type === 'alter_table_alter_column_drop_generated')
&& dialect === 'mysql'
);
}
convert(statement: MySqlModifyColumnStatement) {
const { tableName, columnName } = statement;
let columnType = ``;
let columnDefault: any = '';
let columnNotNull = '';
let columnOnUpdate = '';
let columnAutoincrement = '';
let primaryKey = statement.columnPk ? ' PRIMARY KEY' : '';
let columnGenerated = '';
if (statement.type === 'alter_table_alter_column_drop_notnull') {
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
? ` DEFAULT ${statement.columnDefault}`
: '';
columnNotNull = statement.columnNotNull ? ` NOT NULL` : '';
columnOnUpdate = statement.columnOnUpdate
? ` ON UPDATE CURRENT_TIMESTAMP`
: '';
columnAutoincrement = statement.columnAutoIncrement
? ' AUTO_INCREMENT'
: '';
} else if (statement.type === 'alter_table_alter_column_set_notnull') {
columnNotNull = ` NOT NULL`;
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
? ` DEFAULT ${statement.columnDefault}`
: '';
columnOnUpdate = statement.columnOnUpdate
? ` ON UPDATE CURRENT_TIMESTAMP`
: '';
columnAutoincrement = statement.columnAutoIncrement
? ' AUTO_INCREMENT'
: '';
} else if (statement.type === 'alter_table_alter_column_drop_on_update') {
columnNotNull = statement.columnNotNull ? ` NOT NULL` : '';
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
? ` DEFAULT ${statement.columnDefault}`
: '';
columnOnUpdate = '';
columnAutoincrement = statement.columnAutoIncrement
? ' AUTO_INCREMENT'
: '';
} else if (statement.type === 'alter_table_alter_column_set_on_update') {
columnNotNull = statement.columnNotNull ? ` NOT NULL` : '';
columnOnUpdate = ` ON UPDATE CURRENT_TIMESTAMP`;
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
? ` DEFAULT ${statement.columnDefault}`
: '';
columnAutoincrement = statement.columnAutoIncrement
? ' AUTO_INCREMENT'
: '';
} else if (
statement.type === 'alter_table_alter_column_set_autoincrement'
) {
columnNotNull = statement.columnNotNull ? ` NOT NULL` : '';
columnOnUpdate = columnOnUpdate = statement.columnOnUpdate
? ` ON UPDATE CURRENT_TIMESTAMP`
: '';
columnType = ` ${statement.newDataType}`;
columnDefault = statement.columnDefault
Domain
Defined In
Source
Frequently Asked Questions
What is the MySqlModifyColumn class?
MySqlModifyColumn is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is MySqlModifyColumn defined?
MySqlModifyColumn is defined in drizzle-kit/src/sqlgenerator.ts at line 2497.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free