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

diffTestSchemasPushMysql() — drizzle-orm Function Reference

Architecture documentation for the diffTestSchemasPushMysql() function in schemaDiffer.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  80675dbe_974e_8184_3152_575e76219c4a["diffTestSchemasPushMysql()"]
  fb6b4a65_030b_ce6b_df0d_2be21adcd2b3["schemaDiffer.ts"]
  80675dbe_974e_8184_3152_575e76219c4a -->|defined in| fb6b4a65_030b_ce6b_df0d_2be21adcd2b3
  54ca5813_630b_5da2_847e_de001e848a8c["applyMySqlDiffs()"]
  80675dbe_974e_8184_3152_575e76219c4a -->|calls| 54ca5813_630b_5da2_847e_de001e848a8c
  fd1b2256_62ed_ec7e_c677_9d8cbf56136b["testTablesResolver()"]
  80675dbe_974e_8184_3152_575e76219c4a -->|calls| fd1b2256_62ed_ec7e_c677_9d8cbf56136b
  96edd91d_9f30_fc37_cbd3_7c1229315b14["testColumnsResolver()"]
  80675dbe_974e_8184_3152_575e76219c4a -->|calls| 96edd91d_9f30_fc37_cbd3_7c1229315b14
  7e811756_c9c2_7d90_53fe_72a918318b67["testViewsResolverMySql()"]
  80675dbe_974e_8184_3152_575e76219c4a -->|calls| 7e811756_c9c2_7d90_53fe_72a918318b67
  style 80675dbe_974e_8184_3152_575e76219c4a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/tests/schemaDiffer.ts lines 1340–1422

export const diffTestSchemasPushMysql = async (
	client: Connection,
	left: MysqlSchema,
	right: MysqlSchema,
	renamesArr: string[],
	schema: string,
	cli: boolean = false,
	casing?: CasingType | undefined,
) => {
	const { sqlStatements } = await applyMySqlDiffs(left, casing);
	for (const st of sqlStatements) {
		await client.query(st);
	}
	// do introspect into PgSchemaInternal
	const introspectedSchema = await fromMySqlDatabase(
		{
			query: async (sql: string, params?: any[]) => {
				const res = await client.execute(sql, params);
				return res[0] as any;
			},
		},
		schema,
	);

	const leftTables = Object.values(right).filter((it) => is(it, MySqlTable)) as MySqlTable[];

	const leftViews = Object.values(right).filter((it) => is(it, MySqlView)) as MySqlView[];

	const serialized2 = generateMySqlSnapshot(leftTables, leftViews, casing);

	const { version: v1, dialect: d1, ...rest1 } = introspectedSchema;
	const { version: v2, dialect: d2, ...rest2 } = serialized2;

	const sch1 = {
		version: '5',
		dialect: 'mysql',
		id: '0',
		prevId: '0',
		...rest1,
	} as const;

	const sch2 = {
		version: '5',
		dialect: 'mysql',
		id: '0',
		prevId: '0',
		...rest2,
	} as const;

	const sn1 = squashMysqlScheme(sch1);
	const sn2 = squashMysqlScheme(sch2);

	const validatedPrev = mysqlSchema.parse(sch1);
	const validatedCur = mysqlSchema.parse(sch2);

	const renames = new Set(renamesArr);

	if (!cli) {
		const { sqlStatements, statements } = await applyMysqlSnapshotsDiff(
			sn1,
			sn2,
			testTablesResolver(renames),
			testColumnsResolver(renames),
			testViewsResolverMySql(renames),
			validatedPrev,
			validatedCur,
			'push',
		);
		return { sqlStatements, statements };
	} else {
		const { sqlStatements, statements } = await applyMysqlSnapshotsDiff(
			sn1,
			sn2,
			tablesResolver,
			columnsResolver,
			mySqlViewsResolver,
			validatedPrev,
			validatedCur,
			'push',
		);
		return { sqlStatements, statements };

Domain

Subdomains

Frequently Asked Questions

What does diffTestSchemasPushMysql() do?
diffTestSchemasPushMysql() is a function in the drizzle-orm codebase, defined in drizzle-kit/tests/schemaDiffer.ts.
Where is diffTestSchemasPushMysql() defined?
diffTestSchemasPushMysql() is defined in drizzle-kit/tests/schemaDiffer.ts at line 1340.
What does diffTestSchemasPushMysql() call?
diffTestSchemasPushMysql() calls 4 function(s): applyMySqlDiffs, testColumnsResolver, testTablesResolver, testViewsResolverMySql.

Analyze Your Own Codebase

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

Try Supermodel Free