applySqliteSnapshotsDiff() — drizzle-orm Function Reference
Architecture documentation for the applySqliteSnapshotsDiff() function in snapshotsDiffer.ts from the drizzle-orm codebase.
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
Defined In
Calls
- _prepareDropColumns()
- _prepareSqliteAddColumns()
- applyJsonDiff()
- columnChangeFor()
- columnsResolver()
- copy()
- diffColumns()
- diffSchemasOrTables()
- fromJson()
- mapEntries()
- mapKeys()
- nameChangeFor()
- prepareAddCheckConstraint()
- prepareAddCompositePrimaryKeySqlite()
- prepareAlterCompositePrimaryKeySqlite()
- prepareAlterReferencesJson()
- prepareCreateIndexesJson()
- prepareCreateReferencesJson()
- prepareDeleteCheckConstraint()
- prepareDeleteCompositePrimaryKeySqlite()
- prepareDropIndexesJson()
- prepareDropReferencesJson()
- prepareDropTableJson()
- prepareMigrationMeta()
- prepareRenameColumns()
- prepareRenameTableJson()
- prepareSQLiteCreateTable()
- prepareSqliteAlterColumns()
- sqliteCombineStatements()
- tablesResolver()
- viewsResolver()
Source
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