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

upMySqlHandlerV4toV5() — drizzle-orm Function Reference

Architecture documentation for the upMySqlHandlerV4toV5() function in mysqlUp.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  1a48a3f3_6689_bbdb_91b7_4e4bc0178ec6["upMySqlHandlerV4toV5()"]
  290757cc_8ec0_769b_cd24_8074fcebc663["mysqlUp.ts"]
  1a48a3f3_6689_bbdb_91b7_4e4bc0178ec6 -->|defined in| 290757cc_8ec0_769b_cd24_8074fcebc663
  style 1a48a3f3_6689_bbdb_91b7_4e4bc0178ec6 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/cli/commands/mysqlUp.ts lines 9–102

export const upMySqlHandlerV4toV5 = (obj: MySqlSchemaV4): MySqlSchemaV5 => {
	const mappedTables: Record<string, Table> = {};

	for (const [key, table] of Object.entries(obj.tables)) {
		const mappedColumns: Record<string, Column> = {};
		for (const [ckey, column] of Object.entries(table.columns)) {
			let newDefault: any = column.default;
			let newType: string = column.type;
			let newAutoIncrement: boolean | undefined = column.autoincrement;

			if (column.type.toLowerCase().startsWith('datetime')) {
				if (typeof column.default !== 'undefined') {
					if (column.default.startsWith("'") && column.default.endsWith("'")) {
						newDefault = `'${
							column.default
								.substring(1, column.default.length - 1)
								.replace('T', ' ')
								.slice(0, 23)
						}'`;
					} else {
						newDefault = column.default.replace('T', ' ').slice(0, 23);
					}
				}

				newType = column.type.toLowerCase().replace('datetime (', 'datetime(');
			} else if (column.type.toLowerCase() === 'date') {
				if (typeof column.default !== 'undefined') {
					if (column.default.startsWith("'") && column.default.endsWith("'")) {
						newDefault = `'${
							column.default
								.substring(1, column.default.length - 1)
								.split('T')[0]
						}'`;
					} else {
						newDefault = column.default.split('T')[0];
					}
				}
				newType = column.type.toLowerCase().replace('date (', 'date(');
			} else if (column.type.toLowerCase().startsWith('timestamp')) {
				if (typeof column.default !== 'undefined') {
					if (column.default.startsWith("'") && column.default.endsWith("'")) {
						newDefault = `'${
							column.default
								.substring(1, column.default.length - 1)
								.replace('T', ' ')
								.slice(0, 23)
						}'`;
					} else {
						newDefault = column.default.replace('T', ' ').slice(0, 23);
					}
				}
				newType = column.type
					.toLowerCase()
					.replace('timestamp (', 'timestamp(');
			} else if (column.type.toLowerCase().startsWith('time')) {
				newType = column.type.toLowerCase().replace('time (', 'time(');
			} else if (column.type.toLowerCase().startsWith('decimal')) {
				newType = column.type.toLowerCase().replace(', ', ',');
			} else if (column.type.toLowerCase().startsWith('enum')) {
				newType = column.type.toLowerCase();
			} else if (column.type.toLowerCase().startsWith('serial')) {
				newAutoIncrement = true;
			}
			mappedColumns[ckey] = {
				...column,
				default: newDefault,
				type: newType,
				autoincrement: newAutoIncrement,
			};
		}

		mappedTables[key] = {
			...table,
			columns: mappedColumns,
			compositePrimaryKeys: {},
			uniqueConstraints: {},
			checkConstraint: {},
		};
	}

	return {

Domain

Subdomains

Frequently Asked Questions

What does upMySqlHandlerV4toV5() do?
upMySqlHandlerV4toV5() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/cli/commands/mysqlUp.ts.
Where is upMySqlHandlerV4toV5() defined?
upMySqlHandlerV4toV5() is defined in drizzle-kit/src/cli/commands/mysqlUp.ts at line 9.

Analyze Your Own Codebase

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

Try Supermodel Free