getMigrationQueries() — astro Function Reference
Architecture documentation for the getMigrationQueries() function in migration-queries.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD 8d0e7bb2_007f_5d88_64a2_3b0646b309a1["getMigrationQueries()"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3["migration-queries.ts"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|defined in| d1459290_7e42_1f92_05bd_dcc3aeda9fd3 d37933c7_6e03_1ca6_122e_61a06509f197["createEmptySnapshot()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| d37933c7_6e03_1ca6_122e_61a06509f197 fa3ca796_edc6_1c8f_30d6_9c7723935852["getDropTableQueriesForSnapshot()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| fa3ca796_edc6_1c8f_30d6_9c7723935852 beeb0b6e_b83a_8146_b183_49af1a27abbf["getAddedTables()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| beeb0b6e_b83a_8146_b183_49af1a27abbf cafbd193_7993_434a_13e7_6fd9d7605ada["getDroppedTables()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| cafbd193_7993_434a_13e7_6fd9d7605ada 0855ded3_c0df_3359_b016_c3dc5542cc9c["isEmpty()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| 0855ded3_c0df_3359_b016_c3dc5542cc9c 93b83f68_8c01_67cb_fc4b_e06a7e7ec6cd["getAdded()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| 93b83f68_8c01_67cb_fc4b_e06a7e7ec6cd d8831ca9_b159_cb01_9a7a_d14ff371f3bc["getDropped()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| d8831ca9_b159_cb01_9a7a_d14ff371f3bc d8e591b7_f3dd_5f49_beb9_c9047d4d1e02["getTableChangeQueries()"] 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 -->|calls| d8e591b7_f3dd_5f49_beb9_c9047d4d1e02 style 8d0e7bb2_007f_5d88_64a2_3b0646b309a1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/db/src/core/cli/migration-queries.ts lines 42–108
export async function getMigrationQueries({
oldSnapshot,
newSnapshot,
reset = false,
}: {
oldSnapshot: DBSnapshot;
newSnapshot: DBSnapshot;
reset?: boolean;
}): Promise<{ queries: string[]; confirmations: string[] }> {
const queries: string[] = [];
const confirmations: string[] = [];
// When doing a reset, first create DROP TABLE statements, then treat everything
// else as creation.
if (reset) {
const currentSnapshot = oldSnapshot;
oldSnapshot = createEmptySnapshot();
queries.push(...getDropTableQueriesForSnapshot(currentSnapshot));
}
const addedTables = getAddedTables(oldSnapshot, newSnapshot);
const droppedTables = getDroppedTables(oldSnapshot, newSnapshot);
const notDeprecatedDroppedTables = Object.fromEntries(
Object.entries(droppedTables).filter(([, table]) => !table.deprecated),
);
if (!isEmpty(addedTables) && !isEmpty(notDeprecatedDroppedTables)) {
const oldTable = Object.keys(notDeprecatedDroppedTables)[0];
const newTable = Object.keys(addedTables)[0];
throw new Error(RENAME_TABLE_ERROR(oldTable, newTable));
}
for (const [tableName, table] of Object.entries(addedTables)) {
queries.push(getCreateTableQuery(tableName, table));
queries.push(...getCreateIndexQueries(tableName, table));
}
for (const [tableName] of Object.entries(droppedTables)) {
const dropQuery = `DROP TABLE ${sqlite.escapeName(tableName)}`;
queries.push(dropQuery);
}
for (const [tableName, newTable] of Object.entries(newSnapshot.schema)) {
const oldTable = oldSnapshot.schema[tableName];
if (!oldTable) continue;
const addedColumns = getAdded(oldTable.columns, newTable.columns);
const droppedColumns = getDropped(oldTable.columns, newTable.columns);
const notDeprecatedDroppedColumns = Object.fromEntries(
Object.entries(droppedColumns).filter(([, col]) => !col.schema.deprecated),
);
if (!isEmpty(addedColumns) && !isEmpty(notDeprecatedDroppedColumns)) {
throw new Error(
RENAME_COLUMN_ERROR(
`${tableName}.${Object.keys(addedColumns)[0]}`,
`${tableName}.${Object.keys(notDeprecatedDroppedColumns)[0]}`,
),
);
}
const result = await getTableChangeQueries({
tableName,
oldTable,
newTable,
});
queries.push(...result.queries);
confirmations.push(...result.confirmations);
}
return { queries, confirmations };
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does getMigrationQueries() do?
getMigrationQueries() is a function in the astro codebase, defined in packages/db/src/core/cli/migration-queries.ts.
Where is getMigrationQueries() defined?
getMigrationQueries() is defined in packages/db/src/core/cli/migration-queries.ts at line 42.
What does getMigrationQueries() call?
getMigrationQueries() calls 8 function(s): createEmptySnapshot, getAdded, getAddedTables, getDropTableQueriesForSnapshot, getDropped, getDroppedTables, getTableChangeQueries, isEmpty.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free