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

mysqlTableWithSchema() — drizzle-orm Function Reference

Architecture documentation for the mysqlTableWithSchema() function in table.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  ed204ff7_3e66_4124_7788_616d3713b13c["mysqlTableWithSchema()"]
  62c695d3_7eff_3822_db70_ce6b25ccdb04["table.ts"]
  ed204ff7_3e66_4124_7788_616d3713b13c -->|defined in| 62c695d3_7eff_3822_db70_ce6b25ccdb04
  baeaae7a_6e32_8d63_8090_9210b8c900b4["mysqlTable()"]
  baeaae7a_6e32_8d63_8090_9210b8c900b4 -->|calls| ed204ff7_3e66_4124_7788_616d3713b13c
  0e8f8364_593c_4465_62e4_20d6f8fd645f["mysqlTableCreator()"]
  0e8f8364_593c_4465_62e4_20d6f8fd645f -->|calls| ed204ff7_3e66_4124_7788_616d3713b13c
  828aa578_07f1_97b1_f317_eb964e64af8d["getMySqlColumnBuilders()"]
  ed204ff7_3e66_4124_7788_616d3713b13c -->|calls| 828aa578_07f1_97b1_f317_eb964e64af8d
  cd65a11d_75ea_a9b3_c3c6_9a66d4da6977["build()"]
  ed204ff7_3e66_4124_7788_616d3713b13c -->|calls| cd65a11d_75ea_a9b3_c3c6_9a66d4da6977
  style ed204ff7_3e66_4124_7788_616d3713b13c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/mysql-core/table.ts lines 61–116

export function mysqlTableWithSchema<
	TTableName extends string,
	TSchemaName extends string | undefined,
	TColumnsMap extends Record<string, MySqlColumnBuilderBase>,
>(
	name: TTableName,
	columns: TColumnsMap | ((columnTypes: MySqlColumnBuilders) => TColumnsMap),
	extraConfig:
		| ((
			self: BuildColumns<TTableName, TColumnsMap, 'mysql'>,
		) => MySqlTableExtraConfig | MySqlTableExtraConfigValue[])
		| undefined,
	schema: TSchemaName,
	baseName = name,
): MySqlTableWithColumns<{
	name: TTableName;
	schema: TSchemaName;
	columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
	dialect: 'mysql';
}> {
	const rawTable = new MySqlTable<{
		name: TTableName;
		schema: TSchemaName;
		columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
		dialect: 'mysql';
	}>(name, schema, baseName);

	const parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getMySqlColumnBuilders()) : columns;

	const builtColumns = Object.fromEntries(
		Object.entries(parsedColumns).map(([name, colBuilderBase]) => {
			const colBuilder = colBuilderBase as MySqlColumnBuilder;
			colBuilder.setName(name);
			const column = colBuilder.build(rawTable);
			rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));
			return [name, column];
		}),
	) as unknown as BuildColumns<TTableName, TColumnsMap, 'mysql'>;

	const table = Object.assign(rawTable, builtColumns);

	table[Table.Symbol.Columns] = builtColumns;
	table[Table.Symbol.ExtraConfigColumns] = builtColumns as unknown as BuildExtraConfigColumns<
		TTableName,
		TColumnsMap,
		'mysql'
	>;

	if (extraConfig) {
		table[MySqlTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (
			self: Record<string, MySqlColumn>,
		) => MySqlTableExtraConfig;
	}

	return table;
}

Domain

Subdomains

Frequently Asked Questions

What does mysqlTableWithSchema() do?
mysqlTableWithSchema() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/table.ts.
Where is mysqlTableWithSchema() defined?
mysqlTableWithSchema() is defined in drizzle-orm/src/mysql-core/table.ts at line 61.
What does mysqlTableWithSchema() call?
mysqlTableWithSchema() calls 2 function(s): build, getMySqlColumnBuilders.
What calls mysqlTableWithSchema()?
mysqlTableWithSchema() is called by 2 function(s): mysqlTable, mysqlTableCreator.

Analyze Your Own Codebase

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

Try Supermodel Free