sqlitePushUtils.ts — drizzle-orm Source File
Architecture documentation for sqlitePushUtils.ts, a typescript file in the drizzle-orm codebase. 13 imports, 3 dependents.
Entity Profile
Dependency Diagram
graph LR 934183d7_9412_6b03_702c_de0c2903ced3["sqlitePushUtils.ts"] 03c276d3_0efe_66e2_9ba9_e67edbf29418["sqliteSchema.ts"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 03c276d3_0efe_66e2_9ba9_e67edbf29418 5242f430_2ed9_6469_918b_4cb42706b913["SQLiteSchemaInternal"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 5242f430_2ed9_6469_918b_4cb42706b913 1906f782_c6ab_facd_3040_fbb6a08a7353["SQLiteSchemaSquashed"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 1906f782_c6ab_facd_3040_fbb6a08a7353 fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] 934183d7_9412_6b03_702c_de0c2903ced3 --> fe4174c7_3b9c_5b26_98a0_b2395ca21939 01959b95_70b4_ccae_6c93_53d172a9e0cc["CreateSqliteIndexConvertor"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 01959b95_70b4_ccae_6c93_53d172a9e0cc f532f7a9_3781_5a3c_9695_e62bd56cabd7["fromJson"] 934183d7_9412_6b03_702c_de0c2903ced3 --> f532f7a9_3781_5a3c_9695_e62bd56cabd7 49216312_c8e3_45dd_dd97_3e5de216bb55["SQLiteCreateTableConvertor"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 49216312_c8e3_45dd_dd97_3e5de216bb55 49ad24d5_d2f1_3d7f_af9f_96f8032a0d15["SQLiteDropTableConvertor"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 49ad24d5_d2f1_3d7f_af9f_96f8032a0d15 894a9cd3_5326_54f3_7a32_bc742faa5d2d["SqliteRenameTableConvertor"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 894a9cd3_5326_54f3_7a32_bc742faa5d2d 6139f734_8ada_c641_9fec_9a55cfdf376f["jsonStatements.ts"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 6139f734_8ada_c641_9fec_9a55cfdf376f 5847e5ae_7b4a_4b02_b68f_883ef88b3c1a["utils.ts"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 5847e5ae_7b4a_4b02_b68f_883ef88b3c1a 2b006da9_92ff_ab47_ba6c_8ec3d041f7e3["findAddedAndRemoved"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 2b006da9_92ff_ab47_ba6c_8ec3d041f7e3 0f00c7dd_5eba_f1f8_c559_a99431086500["chalk"] 934183d7_9412_6b03_702c_de0c2903ced3 --> 0f00c7dd_5eba_f1f8_c559_a99431086500 e668bfef_9125_1ef0_2f94_a0f9605584bd["api.ts"] e668bfef_9125_1ef0_2f94_a0f9605584bd --> 934183d7_9412_6b03_702c_de0c2903ced3 style 934183d7_9412_6b03_702c_de0c2903ced3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import chalk from 'chalk';
import { SQLiteSchemaInternal, SQLiteSchemaSquashed, SQLiteSquasher } from '../../serializer/sqliteSchema';
import {
CreateSqliteIndexConvertor,
fromJson,
SQLiteCreateTableConvertor,
SQLiteDropTableConvertor,
SqliteRenameTableConvertor,
} from '../../sqlgenerator';
import type { JsonStatement } from '../../jsonStatements';
import { findAddedAndRemoved, type SQLiteDB } from '../../utils';
export const _moveDataStatements = (
tableName: string,
json: SQLiteSchemaSquashed,
dataLoss: boolean = false,
) => {
const statements: string[] = [];
const newTableName = `__new_${tableName}`;
// create table statement from a new json2 with proper name
const tableColumns = Object.values(json.tables[tableName].columns);
const referenceData = Object.values(json.tables[tableName].foreignKeys);
const compositePKs = Object.values(
json.tables[tableName].compositePrimaryKeys,
).map((it) => SQLiteSquasher.unsquashPK(it));
const checkConstraints = Object.values(json.tables[tableName].checkConstraints);
const mappedCheckConstraints: string[] = checkConstraints.map((it) =>
it.replaceAll(`"${tableName}".`, `"${newTableName}".`)
.replaceAll(`\`${tableName}\`.`, `\`${newTableName}\`.`)
.replaceAll(`${tableName}.`, `${newTableName}.`)
.replaceAll(`'${tableName}'.`, `\`${newTableName}\`.`)
);
const fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it));
// create new table
statements.push(
new SQLiteCreateTableConvertor().convert({
type: 'sqlite_create_table',
tableName: newTableName,
columns: tableColumns,
referenceData: fks,
compositePKs,
checkConstraints: mappedCheckConstraints,
}),
);
// move data
if (!dataLoss) {
const columns = Object.keys(json.tables[tableName].columns).map(
(c) => `"${c}"`,
);
statements.push(
`INSERT INTO \`${newTableName}\`(${
// ... (263 more lines)
Domain
Subdomains
Dependencies
Imported By
Source
Frequently Asked Questions
What does sqlitePushUtils.ts do?
sqlitePushUtils.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleKit domain, CLIWorkflow subdomain.
What functions are defined in sqlitePushUtils.ts?
sqlitePushUtils.ts defines 4 function(s): _moveDataStatements, getNewTableName, getOldTableName, logSuggestionsAndReturn.
What does sqlitePushUtils.ts depend on?
sqlitePushUtils.ts imports 13 module(s): CreateSqliteIndexConvertor, SQLiteCreateTableConvertor, SQLiteDropTableConvertor, SQLiteSchemaInternal, SQLiteSchemaSquashed, SqliteRenameTableConvertor, chalk, findAddedAndRemoved, and 5 more.
What files import sqlitePushUtils.ts?
sqlitePushUtils.ts is imported by 3 file(s): api.ts, jsonStatements.ts, push.ts.
Where is sqlitePushUtils.ts in the architecture?
sqlitePushUtils.ts is located at drizzle-kit/src/cli/commands/sqlitePushUtils.ts (domain: DrizzleKit, subdomain: CLIWorkflow, directory: drizzle-kit/src/cli/commands).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free