Home / Class/ SQLiteAlterTableAddColumnConvertor Class — drizzle-orm Architecture

SQLiteAlterTableAddColumnConvertor Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  aa7c886b_ebf0_80b6_4293_6c012b8ecb77["SQLiteAlterTableAddColumnConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  aa7c886b_ebf0_80b6_4293_6c012b8ecb77 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  d73913e0_d57f_fd84_f250_48ea9c0a1932["can()"]
  aa7c886b_ebf0_80b6_4293_6c012b8ecb77 -->|method| d73913e0_d57f_fd84_f250_48ea9c0a1932
  36fd46c4_aed8_9a97_7a31_4806a1cfac28["convert()"]
  aa7c886b_ebf0_80b6_4293_6c012b8ecb77 -->|method| 36fd46c4_aed8_9a97_7a31_4806a1cfac28

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 1864–1893

export class SQLiteAlterTableAddColumnConvertor extends Convertor {
	can(statement: JsonStatement, dialect: Dialect): boolean {
		return (
			statement.type === 'sqlite_alter_table_add_column' && (dialect === 'sqlite' || dialect === 'turso')
		);
	}

	convert(statement: JsonSqliteAddColumnStatement) {
		const { tableName, column, referenceData } = statement;
		const { name, type, notNull, primaryKey, generated } = column;

		const defaultStatement = `${column.default !== undefined ? ` DEFAULT ${column.default}` : ''}`;
		const notNullStatement = `${notNull ? ' NOT NULL' : ''}`;
		const primaryKeyStatement = `${primaryKey ? ' PRIMARY KEY' : ''}`;
		const referenceAsObject = referenceData
			? SQLiteSquasher.unsquashFK(referenceData)
			: undefined;
		const referenceStatement = `${
			referenceAsObject
				? ` REFERENCES ${referenceAsObject.tableTo}(${referenceAsObject.columnsTo})`
				: ''
		}`;
		// const autoincrementStatement = `${autoincrement ? 'AUTO_INCREMENT' : ''}`
		const generatedStatement = generated
			? ` GENERATED ALWAYS AS ${generated.as} ${generated.type.toUpperCase()}`
			: '';

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

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free