Home / Type/ MySqlTableFn Type — drizzle-orm Architecture

MySqlTableFn Type — drizzle-orm Architecture

Architecture documentation for the MySqlTableFn type/interface in table.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  d754a5bf_cabe_f580_d59b_b9659f24d941["MySqlTableFn"]
  62c695d3_7eff_3822_db70_ce6b25ccdb04["table.ts"]
  d754a5bf_cabe_f580_d59b_b9659f24d941 -->|defined in| 62c695d3_7eff_3822_db70_ce6b25ccdb04
  style d754a5bf_cabe_f580_d59b_b9659f24d941 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/mysql-core/table.ts lines 118–219

export interface MySqlTableFn<TSchemaName extends string | undefined = undefined> {
	<
		TTableName extends string,
		TColumnsMap extends Record<string, MySqlColumnBuilderBase>,
	>(
		name: TTableName,
		columns: TColumnsMap,
		extraConfig?: (
			self: BuildColumns<TTableName, TColumnsMap, 'mysql'>,
		) => MySqlTableExtraConfigValue[],
	): MySqlTableWithColumns<{
		name: TTableName;
		schema: TSchemaName;
		columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
		dialect: 'mysql';
	}>;

	<
		TTableName extends string,
		TColumnsMap extends Record<string, MySqlColumnBuilderBase>,
	>(
		name: TTableName,
		columns: (columnTypes: MySqlColumnBuilders) => TColumnsMap,
		extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfigValue[],
	): MySqlTableWithColumns<{
		name: TTableName;
		schema: TSchemaName;
		columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
		dialect: 'mysql';
	}>;
	/**
	 * @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object
	 *
	 * @example
	 * Deprecated version:
	 * ```ts
	 * export const users = mysqlTable("users", {
	 * 	id: int(),
	 * }, (t) => ({
	 * 	idx: index('custom_name').on(t.id)
	 * }));
	 * ```
	 *
	 * New API:
	 * ```ts
	 * export const users = mysqlTable("users", {
	 * 	id: int(),
	 * }, (t) => [
	 * 	index('custom_name').on(t.id)
	 * ]);
	 * ```
	 */
	<
		TTableName extends string,
		TColumnsMap extends Record<string, MySqlColumnBuilderBase>,
	>(
		name: TTableName,
		columns: TColumnsMap,
		extraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig,
	): MySqlTableWithColumns<{
		name: TTableName;
		schema: TSchemaName;
		columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
		dialect: 'mysql';
	}>;

	/**
	 * @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object
	 *
	 * @example
	 * Deprecated version:
	 * ```ts
	 * export const users = mysqlTable("users", {
	 * 	id: int(),
	 * }, (t) => ({
	 * 	idx: index('custom_name').on(t.id)
	 * }));
	 * ```
	 *
	 * New API:
	 * ```ts

Frequently Asked Questions

What is the MySqlTableFn type?
MySqlTableFn is a type/interface in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/table.ts.
Where is MySqlTableFn defined?
MySqlTableFn is defined in drizzle-orm/src/mysql-core/table.ts at line 118.

Analyze Your Own Codebase

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

Try Supermodel Free