MCPcopy
hub / github.com/drizzle-team/drizzle-orm / diffTestSchemasPushMysql

Function diffTestSchemasPushMysql

drizzle-kit/tests/schemaDiffer.ts:1340–1422  ·  view source on GitHub ↗
(
	client: Connection,
	left: MysqlSchema,
	right: MysqlSchema,
	renamesArr: string[],
	schema: string,
	cli: boolean = false,
	casing?: CasingType | undefined,
)

Source from the content-addressed store, hash-verified

1338};
1339
1340export const diffTestSchemasPushMysql = async (
1341 client: Connection,
1342 left: MysqlSchema,
1343 right: MysqlSchema,
1344 renamesArr: string[],
1345 schema: string,
1346 cli: boolean = false,
1347 casing?: CasingType | undefined,
1348) => {
1349 const { sqlStatements } = await applyMySqlDiffs(left, casing);
1350 for (const st of sqlStatements) {
1351 await client.query(st);
1352 }
1353 // do introspect into PgSchemaInternal
1354 const introspectedSchema = await fromMySqlDatabase(
1355 {
1356 query: async (sql: string, params?: any[]) => {
1357 const res = await client.execute(sql, params);
1358 return res[0] as any;
1359 },
1360 },
1361 schema,
1362 );
1363
1364 const leftTables = Object.values(right).filter((it) => is(it, MySqlTable)) as MySqlTable[];
1365
1366 const leftViews = Object.values(right).filter((it) => is(it, MySqlView)) as MySqlView[];
1367
1368 const serialized2 = generateMySqlSnapshot(leftTables, leftViews, casing);
1369
1370 const { version: v1, dialect: d1, ...rest1 } = introspectedSchema;
1371 const { version: v2, dialect: d2, ...rest2 } = serialized2;
1372
1373 const sch1 = {
1374 version: '5',
1375 dialect: 'mysql',
1376 id: '0',
1377 prevId: '0',
1378 ...rest1,
1379 } as const;
1380
1381 const sch2 = {
1382 version: '5',
1383 dialect: 'mysql',
1384 id: '0',
1385 prevId: '0',
1386 ...rest2,
1387 } as const;
1388
1389 const sn1 = squashMysqlScheme(sch1);
1390 const sn2 = squashMysqlScheme(sch2);
1391
1392 const validatedPrev = mysqlSchema.parse(sch1);
1393 const validatedCur = mysqlSchema.parse(sch2);
1394
1395 const renames = new Set(renamesArr);
1396
1397 if (!cli) {

Callers 2

mysql.test.tsFile · 0.90
mysql-push.test.tsFile · 0.90

Calls 11

isFunction · 0.90
generateMySqlSnapshotFunction · 0.90
squashMysqlSchemeFunction · 0.90
applyMysqlSnapshotsDiffFunction · 0.90
applyMySqlDiffsFunction · 0.85
testTablesResolverFunction · 0.85
testColumnsResolverFunction · 0.85
testViewsResolverMySqlFunction · 0.85
queryMethod · 0.45
executeMethod · 0.45
valuesMethod · 0.45

Tested by

no test coverage detected