Home / File/ push.ts — drizzle-orm Source File

push.ts — drizzle-orm Source File

Architecture documentation for push.ts, a typescript file in the drizzle-orm codebase. 32 imports, 0 dependents.

File typescript DrizzleKit CLIWorkflow 32 imports 5 functions

Entity Profile

Dependency Diagram

graph LR
  6219550e_1686_ca7a_0d96_0838fb90e7cb["push.ts"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> fe4174c7_3b9c_5b26_98a0_b2395ca21939
  f532f7a9_3781_5a3c_9695_e62bd56cabd7["fromJson"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> f532f7a9_3781_5a3c_9695_e62bd56cabd7
  78dc1315_e71e_ad0d_dd8e_8ff968c12ee5["selector-ui.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 78dc1315_e71e_ad0d_dd8e_8ff968c12ee5
  9934e2c6_9f05_2845_f34b_12d10c0c69f6["Select"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 9934e2c6_9f05_2845_f34b_12d10c0c69f6
  ce0519f7_91ef_9fe5_de1a_968bd9acd812["cli.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> ce0519f7_91ef_9fe5_de1a_968bd9acd812
  99e32ba0_ce20_d8b4_a1e9_b7a00baa9413["Entities"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 99e32ba0_ce20_d8b4_a1e9_b7a00baa9413
  9135e6b6_37f7_c980_ee35_90f5531de5a4["common.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 9135e6b6_37f7_c980_ee35_90f5531de5a4
  0870fa3b_07a8_6547_8461_71560fba51e9["CasingType"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 0870fa3b_07a8_6547_8461_71560fba51e9
  06060c75_d281_2312_e011_483025ec5bdf["libsql.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 06060c75_d281_2312_e011_483025ec5bdf
  1bfa7e93_7448_d7f8_6ad8_b360047cf886["LibSQLCredentials"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 1bfa7e93_7448_d7f8_6ad8_b360047cf886
  d81f4f07_7d2c_ea3f_392e_6be6055ba361["mysql.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> d81f4f07_7d2c_ea3f_392e_6be6055ba361
  502fb53b_89d2_ec40_3a24_f05850833f68["outputs.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> 502fb53b_89d2_ec40_3a24_f05850833f68
  aa34baa9_cce1_f1d8_4227_98c889d76b37["postgres.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> aa34baa9_cce1_f1d8_4227_98c889d76b37
  f65d82f8_85a1_d127_5f91_94b02851c72a["singlestore.ts"]
  6219550e_1686_ca7a_0d96_0838fb90e7cb --> f65d82f8_85a1_d127_5f91_94b02851c72a
  style 6219550e_1686_ca7a_0d96_0838fb90e7cb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import chalk from 'chalk';
import { randomUUID } from 'crypto';
import { render } from 'hanji';
import { serializePg } from 'src/serializer';
import { fromJson } from '../../sqlgenerator';
import { Select } from '../selector-ui';
import { Entities } from '../validations/cli';
import { CasingType } from '../validations/common';
import { LibSQLCredentials } from '../validations/libsql';
import type { MysqlCredentials } from '../validations/mysql';
import { withStyle } from '../validations/outputs';
import type { PostgresCredentials } from '../validations/postgres';
import { SingleStoreCredentials } from '../validations/singlestore';
import type { SqliteCredentials } from '../validations/sqlite';
import { libSqlLogSuggestionsAndReturn } from './libSqlPushUtils';
import {
	filterStatements as mySqlFilterStatements,
	logSuggestionsAndReturn as mySqlLogSuggestionsAndReturn,
} from './mysqlPushUtils';
import { pgSuggestions } from './pgPushUtils';
import {
	filterStatements as singleStoreFilterStatements,
	logSuggestionsAndReturn as singleStoreLogSuggestionsAndReturn,
} from './singlestorePushUtils';
import { logSuggestionsAndReturn as sqliteSuggestions } from './sqlitePushUtils';

export const mysqlPush = async (
	schemaPath: string | string[],
	credentials: MysqlCredentials,
	tablesFilter: string[],
	strict: boolean,
	verbose: boolean,
	force: boolean,
	casing: CasingType | undefined,
) => {
	const { connectToMySQL } = await import('../connections');
	const { mysqlPushIntrospect } = await import('./mysqlIntrospect');

	const { db, database } = await connectToMySQL(credentials);

	const { schema } = await mysqlPushIntrospect(db, database, tablesFilter);
	const { prepareMySQLPush } = await import('./migrate');

	const statements = await prepareMySQLPush(schemaPath, schema, casing);

	const filteredStatements = mySqlFilterStatements(
		statements.statements ?? [],
		statements.validatedCur,
		statements.validatedPrev,
	);

	try {
		if (filteredStatements.length === 0) {
			render(`[${chalk.blue('i')}] No changes detected`);
		} else {
			const {
				shouldAskForApprove,
				statementsToExecute,
				columnsToRemove,
				tablesToRemove,
// ... (580 more lines)

Domain

Subdomains

Frequently Asked Questions

What does push.ts do?
push.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 push.ts?
push.ts defines 5 function(s): libSQLPush, mysqlPush, pgPush, singlestorePush, sqlitePush.
What does push.ts depend on?
push.ts imports 32 module(s): CasingType, Entities, LibSQLCredentials, Select, SingleStoreCredentials, chalk, cli.ts, common.ts, and 24 more.
Where is push.ts in the architecture?
push.ts is located at drizzle-kit/src/cli/commands/push.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