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

Function diffTestSchemasMysql

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

Source from the content-addressed store, hash-verified

1475};
1476
1477export const diffTestSchemasMysql = async (
1478 left: MysqlSchema,
1479 right: MysqlSchema,
1480 renamesArr: string[],
1481 cli: boolean = false,
1482 casing?: CasingType | undefined,
1483) => {
1484 const leftTables = Object.values(left).filter((it) => is(it, MySqlTable)) as MySqlTable[];
1485
1486 const leftViews = Object.values(left).filter((it) => is(it, MySqlView)) as MySqlView[];
1487
1488 const rightTables = Object.values(right).filter((it) => is(it, MySqlTable)) as MySqlTable[];
1489
1490 const rightViews = Object.values(right).filter((it) => is(it, MySqlView)) as MySqlView[];
1491
1492 const serialized1 = generateMySqlSnapshot(leftTables, leftViews, casing);
1493 const serialized2 = generateMySqlSnapshot(rightTables, rightViews, casing);
1494
1495 const { version: v1, dialect: d1, ...rest1 } = serialized1;
1496 const { version: v2, dialect: d2, ...rest2 } = serialized2;
1497
1498 const sch1 = {
1499 version: '5',
1500 dialect: 'mysql',
1501 id: '0',
1502 prevId: '0',
1503 ...rest1,
1504 } as const;
1505
1506 const sch2 = {
1507 version: '5',
1508 dialect: 'mysql',
1509 id: '0',
1510 prevId: '0',
1511 ...rest2,
1512 } as const;
1513
1514 const sn1 = squashMysqlScheme(sch1);
1515 const sn2 = squashMysqlScheme(sch2);
1516
1517 const validatedPrev = mysqlSchema.parse(sch1);
1518 const validatedCur = mysqlSchema.parse(sch2);
1519
1520 const renames = new Set(renamesArr);
1521
1522 if (!cli) {
1523 const { sqlStatements, statements } = await applyMysqlSnapshotsDiff(
1524 sn1,
1525 sn2,
1526 testTablesResolver(renames),
1527 testColumnsResolver(renames),
1528 testViewsResolverMySql(renames),
1529 validatedPrev,
1530 validatedCur,
1531 );
1532 return { sqlStatements, statements };
1533 }
1534

Callers 6

mysql.test.tsFile · 0.90
mysql.test.tsFile · 0.90

Calls 8

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

Tested by

no test coverage detected