libSqlPushUtils.ts — drizzle-orm Source File
Architecture documentation for libSqlPushUtils.ts, a typescript file in the drizzle-orm codebase. 13 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 0232777b_2a7f_2d05_d5d8_ae34939c6599["libSqlPushUtils.ts"] 03c276d3_0efe_66e2_9ba9_e67edbf29418["sqliteSchema.ts"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 03c276d3_0efe_66e2_9ba9_e67edbf29418 5242f430_2ed9_6469_918b_4cb42706b913["SQLiteSchemaInternal"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 5242f430_2ed9_6469_918b_4cb42706b913 1906f782_c6ab_facd_3040_fbb6a08a7353["SQLiteSchemaSquashed"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 1906f782_c6ab_facd_3040_fbb6a08a7353 fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> fe4174c7_3b9c_5b26_98a0_b2395ca21939 01959b95_70b4_ccae_6c93_53d172a9e0cc["CreateSqliteIndexConvertor"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 01959b95_70b4_ccae_6c93_53d172a9e0cc f532f7a9_3781_5a3c_9695_e62bd56cabd7["fromJson"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> f532f7a9_3781_5a3c_9695_e62bd56cabd7 e496d264_ffa3_db83_0260_fdca9d4f91a7["LibSQLModifyColumn"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> e496d264_ffa3_db83_0260_fdca9d4f91a7 49216312_c8e3_45dd_dd97_3e5de216bb55["SQLiteCreateTableConvertor"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 49216312_c8e3_45dd_dd97_3e5de216bb55 49ad24d5_d2f1_3d7f_af9f_96f8032a0d15["SQLiteDropTableConvertor"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 49ad24d5_d2f1_3d7f_af9f_96f8032a0d15 894a9cd3_5326_54f3_7a32_bc742faa5d2d["SqliteRenameTableConvertor"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 894a9cd3_5326_54f3_7a32_bc742faa5d2d 0f00c7dd_5eba_f1f8_c559_a99431086500["chalk"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 0f00c7dd_5eba_f1f8_c559_a99431086500 76cb6b0b_4692_581e_e6e4_769d23792713["jsonStatements"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 76cb6b0b_4692_581e_e6e4_769d23792713 96cd5198_cc88_1f8f_6667_aa481b3b3517["utils"] 0232777b_2a7f_2d05_d5d8_ae34939c6599 --> 96cd5198_cc88_1f8f_6667_aa481b3b3517 6219550e_1686_ca7a_0d96_0838fb90e7cb["push.ts"] 6219550e_1686_ca7a_0d96_0838fb90e7cb --> 0232777b_2a7f_2d05_d5d8_ae34939c6599 style 0232777b_2a7f_2d05_d5d8_ae34939c6599 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import chalk from 'chalk';
import { JsonStatement } from 'src/jsonStatements';
import { findAddedAndRemoved, SQLiteDB } from 'src/utils';
import { SQLiteSchemaInternal, SQLiteSchemaSquashed, SQLiteSquasher } from '../../serializer/sqliteSchema';
import {
CreateSqliteIndexConvertor,
fromJson,
LibSQLModifyColumn,
SQLiteCreateTableConvertor,
SQLiteDropTableConvertor,
SqliteRenameTableConvertor,
} from '../../sqlgenerator';
export const getOldTableName = (
tableName: string,
meta: SQLiteSchemaInternal['_meta'],
) => {
for (const key of Object.keys(meta.tables)) {
const value = meta.tables[key];
if (`"${tableName}"` === value) {
return key.substring(1, key.length - 1);
}
}
return tableName;
};
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 fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it));
const mappedCheckConstraints: string[] = checkConstraints.map((it) =>
it.replaceAll(`"${tableName}".`, `"${newTableName}".`)
.replaceAll(`\`${tableName}\`.`, `\`${newTableName}\`.`)
.replaceAll(`${tableName}.`, `${newTableName}.`)
.replaceAll(`'${tableName}'.`, `\`${newTableName}\`.`)
);
// create new table
statements.push(
new SQLiteCreateTableConvertor().convert({
type: 'sqlite_create_table',
tableName: newTableName,
columns: tableColumns,
referenceData: fks,
// ... (296 more lines)
Domain
Subdomains
Dependencies
Imported By
Source
Frequently Asked Questions
What does libSqlPushUtils.ts do?
libSqlPushUtils.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 libSqlPushUtils.ts?
libSqlPushUtils.ts defines 3 function(s): _moveDataStatements, getOldTableName, libSqlLogSuggestionsAndReturn.
What does libSqlPushUtils.ts depend on?
libSqlPushUtils.ts imports 13 module(s): CreateSqliteIndexConvertor, LibSQLModifyColumn, SQLiteCreateTableConvertor, SQLiteDropTableConvertor, SQLiteSchemaInternal, SQLiteSchemaSquashed, SqliteRenameTableConvertor, chalk, and 5 more.
What files import libSqlPushUtils.ts?
libSqlPushUtils.ts is imported by 1 file(s): push.ts.
Where is libSqlPushUtils.ts in the architecture?
libSqlPushUtils.ts is located at drizzle-kit/src/cli/commands/libSqlPushUtils.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