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

drop.ts — drizzle-orm Source File

Architecture documentation for drop.ts, a typescript file in the drizzle-orm codebase. 10 imports, 1 dependents.

File typescript DrizzleKit CLIWorkflow 10 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  abecef96_5a79_62f4_9fa7_4cac90f0bb61["drop.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a["utils.ts"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> 5847e5ae_7b4a_4b02_b68f_883ef88b3c1a
  99cb50bc_421c_6cf6_7d07_8a5d476acc83["Journal"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> 99cb50bc_421c_6cf6_7d07_8a5d476acc83
  217e2cbd_4fb7_ceab_251c_5733ece08a8f["views.ts"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> 217e2cbd_4fb7_ceab_251c_5733ece08a8f
  129d37bd_998c_ca67_437a_70f89493fa5d["DropMigrationView"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> 129d37bd_998c_ca67_437a_70f89493fa5d
  b14d3855_8cce_38c9_8952_a9d014c2fb1b["migrate.ts"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> b14d3855_8cce_38c9_8952_a9d014c2fb1b
  a11e5277_29c6_14fc_5eda_d9fa4ed1ddc8["embeddedMigrations"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> a11e5277_29c6_14fc_5eda_d9fa4ed1ddc8
  0f00c7dd_5eba_f1f8_c559_a99431086500["chalk"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> 0f00c7dd_5eba_f1f8_c559_a99431086500
  9a46d98d_eb2d_c1e4_a37b_506dd514a6a7["fs"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> 9a46d98d_eb2d_c1e4_a37b_506dd514a6a7
  a506b568_7d24_7568_35df_af935066e9fd["hanji"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> a506b568_7d24_7568_35df_af935066e9fd
  412eac48_6e13_8b0f_b7b2_5c943c225130["path"]
  abecef96_5a79_62f4_9fa7_4cac90f0bb61 --> 412eac48_6e13_8b0f_b7b2_5c943c225130
  5bf76609_579e_d312_b33b_ab5b8b683111["schema.ts"]
  5bf76609_579e_d312_b33b_ab5b8b683111 --> abecef96_5a79_62f4_9fa7_4cac90f0bb61
  style abecef96_5a79_62f4_9fa7_4cac90f0bb61 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import chalk from 'chalk';
import { readFileSync, rmSync, writeFileSync } from 'fs';
import fs from 'fs';
import { render } from 'hanji';
import { join } from 'path';
import { Journal } from '../../utils';
import { DropMigrationView } from '../views';
import { embeddedMigrations } from './migrate';

export const dropMigration = async ({
	out,
	bundle,
}: {
	out: string;
	bundle: boolean;
}) => {
	const metaFilePath = join(out, 'meta', '_journal.json');
	const journal = JSON.parse(readFileSync(metaFilePath, 'utf-8')) as Journal;

	if (journal.entries.length === 0) {
		console.log(
			`[${chalk.blue('i')}] no migration entries found in ${metaFilePath}`,
		);
		return;
	}

	const result = await render(new DropMigrationView(journal.entries));
	if (result.status === 'aborted') return;

	delete journal.entries[journal.entries.indexOf(result.data!)];

	const resultJournal: Journal = {
		...journal,
		entries: journal.entries.filter(Boolean),
	};
	const sqlFilePath = join(out, `${result.data.tag}.sql`);
	const snapshotFilePath = join(
		out,
		'meta',
		`${result.data.tag.split('_')[0]}_snapshot.json`,
	);
	rmSync(sqlFilePath);
	rmSync(snapshotFilePath);
	writeFileSync(metaFilePath, JSON.stringify(resultJournal, null, 2));

	if (bundle) {
		fs.writeFileSync(
			join(out, `migrations.js`),
			embeddedMigrations(resultJournal),
		);
	}

	console.log(
		`[${chalk.green('✓')}] ${
			chalk.bold(
				result.data.tag,
			)
		} migration successfully dropped`,
	);
};

Domain

Subdomains

Functions

Frequently Asked Questions

What does drop.ts do?
drop.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 drop.ts?
drop.ts defines 1 function(s): dropMigration.
What does drop.ts depend on?
drop.ts imports 10 module(s): DropMigrationView, Journal, chalk, embeddedMigrations, fs, hanji, migrate.ts, path, and 2 more.
What files import drop.ts?
drop.ts is imported by 1 file(s): schema.ts.
Where is drop.ts in the architecture?
drop.ts is located at drizzle-kit/src/cli/commands/drop.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