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

applySqliteSnapshotsDiff() — drizzle-orm Function Reference

Architecture documentation for the applySqliteSnapshotsDiff() function in snapshotsDiffer.ts from the drizzle-orm codebase.

Function typescript DrizzleKit Snapshots calls 31 called by 4

Entity Profile

Dependency Diagram

graph TD
  b78205f3_fa66_a61c_5923_e5b12af08541["applySqliteSnapshotsDiff()"]
  802b6b55_e789_2c4e_eda4_7aa272bf93bf["snapshotsDiffer.ts"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|defined in| 802b6b55_e789_2c4e_eda4_7aa272bf93bf
  6721899d_8c29_4a37_5746_09607f0fe2fd["introspectSqlite()"]
  6721899d_8c29_4a37_5746_09607f0fe2fd -->|calls| b78205f3_fa66_a61c_5923_e5b12af08541
  f07f6c43_51fe_8050_2d03_c28df98b8ee4["prepareAndMigrateSqlite()"]
  f07f6c43_51fe_8050_2d03_c28df98b8ee4 -->|calls| b78205f3_fa66_a61c_5923_e5b12af08541
  e38a69d9_c221_0a12_36fd_c957435beda4["prepareAndExportSqlite()"]
  e38a69d9_c221_0a12_36fd_c957435beda4 -->|calls| b78205f3_fa66_a61c_5923_e5b12af08541
  f866c7b6_a4ec_e3ab_de0e_a857a0614be3["prepareSQLitePush()"]
  f866c7b6_a4ec_e3ab_de0e_a857a0614be3 -->|calls| b78205f3_fa66_a61c_5923_e5b12af08541
  291bdf7c_4a48_1247_741d_09642192e703["diffSchemasOrTables()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 291bdf7c_4a48_1247_741d_09642192e703
  5a124fc6_9644_a650_44cd_f52152588d78["tablesResolver()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 5a124fc6_9644_a650_44cd_f52152588d78
  01015273_c4e5_0d0c_8803_ec6921e6725f["copy()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 01015273_c4e5_0d0c_8803_ec6921e6725f
  140b617a_2b2e_f7f0_105d_a8a85f09dee7["mapEntries()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 140b617a_2b2e_f7f0_105d_a8a85f09dee7
  4d6b4e9d_8b8c_15d0_7766_020b9974818f["nameChangeFor()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 4d6b4e9d_8b8c_15d0_7766_020b9974818f
  0c62e35f_ea8f_0b9a_bf7a_3417c77163c5["diffColumns()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 0c62e35f_ea8f_0b9a_bf7a_3417c77163c5
  687346c0_7248_2d5e_8ed4_3b062141ca98["columnsResolver()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 687346c0_7248_2d5e_8ed4_3b062141ca98
  38f6a3c8_a9f7_18ec_ce70_e8619a2ce0c6["mapKeys()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| 38f6a3c8_a9f7_18ec_ce70_e8619a2ce0c6
  a59f1489_266e_2433_fd0e_5ac1c726c540["columnChangeFor()"]
  b78205f3_fa66_a61c_5923_e5b12af08541 -->|calls| a59f1489_266e_2433_fd0e_5ac1c726c540
  style b78205f3_fa66_a61c_5923_e5b12af08541 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/snapshotsDiffer.ts lines 3239–3792

export const applySqliteSnapshotsDiff = async (
	json1: SQLiteSchemaSquashed,
	json2: SQLiteSchemaSquashed,
	tablesResolver: (
		input: ResolverInput<Table>,
	) => Promise<ResolverOutputWithMoved<Table>>,
	columnsResolver: (
		input: ColumnsResolverInput<Column>,
	) => Promise<ColumnsResolverOutput<Column>>,
	viewsResolver: (
		input: ResolverInput<SqliteView & { schema: '' }>,
	) => Promise<ResolverOutputWithMoved<SqliteView>>,
	prevFull: SQLiteSchema,
	curFull: SQLiteSchema,
	action?: 'push' | undefined,
): Promise<{
	statements: JsonStatement[];
	sqlStatements: string[];
	_meta:
		| {
			schemas: {};
			tables: {};
			columns: {};
		}
		| undefined;
}> => {
	const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables);

	const {
		created: createdTables,
		deleted: deletedTables,
		renamed: renamedTables,
	} = await tablesResolver({
		created: tablesDiff.added,
		deleted: tablesDiff.deleted,
	});

	const tablesPatchedSnap1 = copy(json1);
	tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_, it) => {
		const { name } = nameChangeFor(it, renamedTables);
		it.name = name;
		return [name, it];
	});

	const res = diffColumns(tablesPatchedSnap1.tables, json2.tables);

	const columnRenames = [] as {
		table: string;
		renames: { from: Column; to: Column }[];
	}[];

	const columnCreates = [] as {
		table: string;
		columns: Column[];
	}[];

	const columnDeletes = [] as {
		table: string;
		columns: Column[];
	}[];

	for (let entry of Object.values(res)) {
		const { renamed, created, deleted } = await columnsResolver({
			tableName: entry.name,
			schema: entry.schema,
			deleted: entry.columns.deleted,
			created: entry.columns.added,
		});

		if (created.length > 0) {
			columnCreates.push({
				table: entry.name,
				columns: created,
			});
		}

		if (deleted.length > 0) {
			columnDeletes.push({
				table: entry.name,
				columns: deleted,
			});

Domain

Subdomains

Frequently Asked Questions

What does applySqliteSnapshotsDiff() do?
applySqliteSnapshotsDiff() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/snapshotsDiffer.ts.
Where is applySqliteSnapshotsDiff() defined?
applySqliteSnapshotsDiff() is defined in drizzle-kit/src/snapshotsDiffer.ts at line 3239.
What does applySqliteSnapshotsDiff() call?
applySqliteSnapshotsDiff() calls 31 function(s): _prepareDropColumns, _prepareSqliteAddColumns, applyJsonDiff, columnChangeFor, columnsResolver, copy, diffColumns, diffSchemasOrTables, and 23 more.
What calls applySqliteSnapshotsDiff()?
applySqliteSnapshotsDiff() is called by 4 function(s): introspectSqlite, prepareAndExportSqlite, prepareAndMigrateSqlite, prepareSQLitePush.

Analyze Your Own Codebase

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

Try Supermodel Free