Home / Function/ column() — drizzle-orm Function Reference

column() — drizzle-orm Function Reference

Architecture documentation for the column() function in introspect-mysql.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb["column()"]
  1198bdc6_ac5c_88c0_dda6_b8caf0f5d9fa["introspect-mysql.ts"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|defined in| 1198bdc6_ac5c_88c0_dda6_b8caf0f5d9fa
  66cb9854_27ce_f964_9c23_6dd6fd021ba0["createTableColumns()"]
  66cb9854_27ce_f964_9c23_6dd6fd021ba0 -->|calls| ab820e0b_412e_ee12_13bc_dbb2e64f13bb
  aa019a6a_5a94_2df4_74de_aac830a90a78["dbColumnName()"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|calls| aa019a6a_5a94_2df4_74de_aac830a90a78
  01d302e6_b23c_a0cd_9ffb_1661cbbd095a["mapColumnDefault()"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|calls| 01d302e6_b23c_a0cd_9ffb_1661cbbd095a
  2e12f4e7_3a1f_efff_82af_ce09e971caf8["timeConfig()"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|calls| 2e12f4e7_3a1f_efff_82af_ce09e971caf8
  70564073_c936_b523_ce1d_4f7e783dc73b["mapColumnDefaultForJson()"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|calls| 70564073_c936_b523_ce1d_4f7e783dc73b
  b79b7789_7dc7_8d59_d31c_04fd15a06eee["unescapeSingleQuotes()"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|calls| b79b7789_7dc7_8d59_d31c_04fd15a06eee
  682018ab_3853_d867_70fd_b968f8135a7a["binaryConfig()"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|calls| 682018ab_3853_d867_70fd_b968f8135a7a
  893ac5b5_2ea6_d9e5_8c08_453ea1789956["camelCase()"]
  ab820e0b_412e_ee12_13bc_dbb2e64f13bb -->|calls| 893ac5b5_2ea6_d9e5_8c08_453ea1789956
  style ab820e0b_412e_ee12_13bc_dbb2e64f13bb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/introspect-mysql.ts lines 386–816

const column = (
	type: string,
	name: string,
	casing: (value: string) => string,
	rawCasing: Casing,
	defaultValue?: any,
	autoincrement?: boolean,
	onUpdate?: boolean,
	isExpression?: boolean,
) => {
	let lowered = type;
	if (!type.startsWith('enum(')) {
		lowered = type.toLowerCase();
	}

	if (lowered === 'serial') {
		return `${casing(name)}: serial(${dbColumnName({ name, casing: rawCasing })})`;
	}

	if (lowered.startsWith('int')) {
		const isUnsigned = lowered.startsWith('int unsigned');
		const columnName = dbColumnName({ name, casing: rawCasing, withMode: isUnsigned });
		let out = `${casing(name)}: int(${columnName}${isUnsigned ? '{ unsigned: true }' : ''})`;
		out += autoincrement ? `.autoincrement()` : '';
		out += typeof defaultValue !== 'undefined'
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: '';
		return out;
	}

	if (lowered.startsWith('tinyint')) {
		const isUnsigned = lowered.startsWith('tinyint unsigned');
		const columnName = dbColumnName({ name, casing: rawCasing, withMode: isUnsigned });
		// let out = `${name.camelCase()}: tinyint("${name}")`;
		let out: string = `${casing(name)}: tinyint(${columnName}${isUnsigned ? '{ unsigned: true }' : ''})`;
		out += autoincrement ? `.autoincrement()` : '';
		out += typeof defaultValue !== 'undefined'
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: '';
		return out;
	}

	if (lowered.startsWith('smallint')) {
		const isUnsigned = lowered.startsWith('smallint unsigned');
		const columnName = dbColumnName({ name, casing: rawCasing, withMode: isUnsigned });
		let out = `${casing(name)}: smallint(${columnName}${isUnsigned ? '{ unsigned: true }' : ''})`;
		out += autoincrement ? `.autoincrement()` : '';
		out += defaultValue
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: '';
		return out;
	}

	if (lowered.startsWith('mediumint')) {
		const isUnsigned = lowered.startsWith('mediumint unsigned');
		const columnName = dbColumnName({ name, casing: rawCasing, withMode: isUnsigned });
		let out = `${casing(name)}: mediumint(${columnName}${isUnsigned ? '{ unsigned: true }' : ''})`;
		out += autoincrement ? `.autoincrement()` : '';
		out += defaultValue
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: '';
		return out;
	}

	if (lowered.startsWith('bigint')) {
		const isUnsigned = lowered.startsWith('bigint unsigned');
		let out = `${casing(name)}: bigint(${dbColumnName({ name, casing: rawCasing, withMode: true })}{ mode: "number"${
			isUnsigned ? ', unsigned: true' : ''
		} })`;
		out += autoincrement ? `.autoincrement()` : '';
		out += defaultValue
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: '';
		return out;
	}

	if (lowered === 'boolean') {
		let out = `${casing(name)}: boolean(${dbColumnName({ name, casing: rawCasing })})`;
		out += defaultValue
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: '';

Domain

Subdomains

Frequently Asked Questions

What does column() do?
column() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/introspect-mysql.ts.
Where is column() defined?
column() is defined in drizzle-kit/src/introspect-mysql.ts at line 386.
What does column() call?
column() calls 7 function(s): binaryConfig, camelCase, dbColumnName, mapColumnDefault, mapColumnDefaultForJson, timeConfig, unescapeSingleQuotes.
What calls column()?
column() is called by 1 function(s): createTableColumns.

Analyze Your Own Codebase

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

Try Supermodel Free