Home / Class/ MySqlAlterTableAddColumnConvertor Class — drizzle-orm Architecture

MySqlAlterTableAddColumnConvertor Class — drizzle-orm Architecture

Architecture documentation for the MySqlAlterTableAddColumnConvertor class in sqlgenerator.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  0c28d620_078d_af22_4783_33348b4dd8e1["MySqlAlterTableAddColumnConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  0c28d620_078d_af22_4783_33348b4dd8e1 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  c6b6bd4e_2bfd_34d7_97be_6a95f729264d["can()"]
  0c28d620_078d_af22_4783_33348b4dd8e1 -->|method| c6b6bd4e_2bfd_34d7_97be_6a95f729264d
  ccb3d271_7268_40f3_1ccf_c20b5c0857cc["convert()"]
  0c28d620_078d_af22_4783_33348b4dd8e1 -->|method| ccb3d271_7268_40f3_1ccf_c20b5c0857cc

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 1802–1831

class MySqlAlterTableAddColumnConvertor extends Convertor {
	can(statement: JsonStatement, dialect: Dialect): boolean {
		return statement.type === 'alter_table_add_column' && dialect === 'mysql';
	}

	convert(statement: JsonAddColumnStatement) {
		const { tableName, column } = statement;
		const {
			name,
			type,
			notNull,
			primaryKey,
			autoincrement,
			onUpdate,
			generated,
		} = column;

		const defaultStatement = `${column.default !== undefined ? ` DEFAULT ${column.default}` : ''}`;
		const notNullStatement = `${notNull ? ' NOT NULL' : ''}`;
		const primaryKeyStatement = `${primaryKey ? ' PRIMARY KEY' : ''}`;
		const autoincrementStatement = `${autoincrement ? ' AUTO_INCREMENT' : ''}`;
		const onUpdateStatement = `${onUpdate ? ' ON UPDATE CURRENT_TIMESTAMP' : ''}`;

		const generatedStatement = generated
			? ` GENERATED ALWAYS AS (${generated?.as}) ${generated?.type.toUpperCase()}`
			: '';

		return `ALTER TABLE \`${tableName}\` ADD \`${name}\` ${type}${primaryKeyStatement}${autoincrementStatement}${defaultStatement}${generatedStatement}${notNullStatement}${onUpdateStatement};`;
	}
}

Domain

Frequently Asked Questions

What is the MySqlAlterTableAddColumnConvertor class?
MySqlAlterTableAddColumnConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is MySqlAlterTableAddColumnConvertor defined?
MySqlAlterTableAddColumnConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 1802.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free