migration-queries.ts — astro Source File
Architecture documentation for migration-queries.ts, a typescript file in the astro codebase. 15 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR d1459290_7e42_1f92_05bd_dcc3aeda9fd3["migration-queries.ts"] 22a59779_880d_0799_08b9_126d5432bad6["./types.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 22a59779_880d_0799_08b9_126d5432bad6 e4a7cb59_3c1e_4823_8146_150431eedb41["./utils.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> e4a7cb59_3c1e_4823_8146_150431eedb41 eda9bb18_dc7e_2d22_8ac4_4f2697d51221["./consts.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> eda9bb18_dc7e_2d22_8ac4_4f2697d51221 2ccf236c_b2f8_cdff_d260_11fea0f1fc10["../db-client/libsql-node.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 2ccf236c_b2f8_cdff_d260_11fea0f1fc10 57319c2a_db71_c5b3_0171_5f4c55721d69["./errors.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 57319c2a_db71_c5b3_0171_5f4c55721d69 396126f6_4f3c_520f_3045_346f0bccf809["../queries.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 396126f6_4f3c_520f_3045_346f0bccf809 d97d1d38_d12d_091d_d5c6_25c44398932a["./core/schemas.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> d97d1d38_d12d_091d_d5c6_25c44398932a 97fa73a6_cf67_73a5_b60d_d52bfb00c7d8["./core/types.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 97fa73a6_cf67_73a5_b60d_d52bfb00c7d8 6ae6435e_1314_7d59_4826_25e9a2ada03f["./utils.js"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 6ae6435e_1314_7d59_4826_25e9a2ada03f b4a76fc8_3591_85b4_7b57_55ab21d1030d["node:util"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> b4a76fc8_3591_85b4_7b57_55ab21d1030d c5eac38e_7e32_a460_9481_95a885def066["deep-diff"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> c5eac38e_7e32_a460_9481_95a885def066 5e5ea2f4_4ff1_f558_0bea_0b3ded79b0ac["drizzle-orm"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 5e5ea2f4_4ff1_f558_0bea_0b3ded79b0ac fb1af543_c710_bc94_95c6_6f94e01b66dd["sqlite-core"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> fb1af543_c710_bc94_95c6_6f94e01b66dd 690d0448_d430_984f_b9f6_7a15b4c36a7d["nanoid"] d1459290_7e42_1f92_05bd_dcc3aeda9fd3 --> 690d0448_d430_984f_b9f6_7a15b4c36a7d style d1459290_7e42_1f92_05bd_dcc3aeda9fd3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { stripVTControlCharacters } from 'node:util';
import deepDiff from 'deep-diff';
import { sql } from 'drizzle-orm';
import { SQLiteAsyncDialect } from 'drizzle-orm/sqlite-core';
import { customAlphabet } from 'nanoid';
import color from 'piccolore';
import { isSerializedSQL } from '../../runtime/types.js';
import { hasPrimaryKey, isDbError } from '../../runtime/utils.js';
import { MIGRATION_VERSION } from '../consts.js';
import { createClient } from '../db-client/libsql-node.js';
import { RENAME_COLUMN_ERROR, RENAME_TABLE_ERROR } from '../errors.js';
import {
getCreateIndexQueries,
getCreateTableQuery,
getDropTableIfExistsQuery,
getModifiers,
getReferencesConfig,
hasDefault,
schemaTypeToSqlType,
} from '../queries.js';
import { columnSchema } from '../schemas.js';
import type {
BooleanColumn,
ColumnType,
DateColumn,
DBColumn,
DBColumns,
DBConfig,
DBSnapshot,
JsonColumn,
NumberColumn,
ResolvedDBTable,
ResolvedDBTables,
ResolvedIndexes,
TextColumn,
} from '../types.js';
import type { RemoteDatabaseInfo } from '../utils.js';
const sqlite = new SQLiteAsyncDialect();
const genTempTableName = customAlphabet('abcdefghijklmnopqrstuvwxyz', 10);
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));
}
// ... (446 more lines)
Domain
Subdomains
Functions
- canAlterTableAddColumn()
- canAlterTableDropColumn()
- canChangeTypeWithoutQuery()
- canRecreateTableWithoutDataLoss()
- createCurrentSnapshot()
- createEmptySnapshot()
- formatDataLossMessage()
- getAdded()
- getAddedTables()
- getAlterTableQueries()
- getChangeIndexQueries()
- getDbCurrentSnapshot()
- getDropTableQueriesForSnapshot()
- getDropped()
- getDroppedTables()
- getMigrationQueries()
- getProductionCurrentSnapshot()
- getRecreateTableQueries()
- getTableChangeQueries()
- getUpdated()
- getUpdatedColumns()
- hasRuntimeDefault()
- isEmpty()
Dependencies
- ../db-client/libsql-node.js
- ../queries.js
- ./consts.js
- ./core/schemas.js
- ./core/types.js
- ./errors.js
- ./types.js
- ./utils.js
- ./utils.js
- deep-diff
- drizzle-orm
- nanoid
- node:util
- piccolore
- sqlite-core
Source
Frequently Asked Questions
What does migration-queries.ts do?
migration-queries.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in migration-queries.ts?
migration-queries.ts defines 23 function(s): canAlterTableAddColumn, canAlterTableDropColumn, canChangeTypeWithoutQuery, canRecreateTableWithoutDataLoss, createCurrentSnapshot, createEmptySnapshot, formatDataLossMessage, getAdded, getAddedTables, getAlterTableQueries, and 13 more.
What does migration-queries.ts depend on?
migration-queries.ts imports 15 module(s): ../db-client/libsql-node.js, ../queries.js, ./consts.js, ./core/schemas.js, ./core/types.js, ./errors.js, ./types.js, ./utils.js, and 7 more.
Where is migration-queries.ts in the architecture?
migration-queries.ts is located at packages/db/src/core/cli/migration-queries.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/db/src/core/cli).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free