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

migrationPreparator.ts — drizzle-orm Source File

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

File typescript DrizzleKit SnapshotSerializer 17 imports 1 dependents 9 functions

Entity Profile

Dependency Diagram

graph LR
  4078709f_3fc0_5514_7728_8f28a7b0e807["migrationPreparator.ts"]
  9135e6b6_37f7_c980_ee35_90f5531de5a4["common.ts"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> 9135e6b6_37f7_c980_ee35_90f5531de5a4
  0870fa3b_07a8_6547_8461_71560fba51e9["CasingType"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> 0870fa3b_07a8_6547_8461_71560fba51e9
  c3eb904f_5390_9c0d_4b12_54d182c5f8c9["index.ts"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> c3eb904f_5390_9c0d_4b12_54d182c5f8c9
  28658aa5_a9ca_196c_cf25_5227ba3e8e36["serializeMySql"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> 28658aa5_a9ca_196c_cf25_5227ba3e8e36
  dd36a37c_7a7b_0f61_31c0_b6a9f9c621ef["serializePg"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> dd36a37c_7a7b_0f61_31c0_b6a9f9c621ef
  89b7ba7c_6d44_6830_1256_8740e8b6838e["serializeSingleStore"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> 89b7ba7c_6d44_6830_1256_8740e8b6838e
  635252db_7a68_131f_350d_60c2806f943d["serializeSQLite"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> 635252db_7a68_131f_350d_60c2806f943d
  f2ee16c1_40e6_43f3_15b2_c391a3ac170b["mysqlSchema.ts"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> f2ee16c1_40e6_43f3_15b2_c391a3ac170b
  b8ffbc78_4812_3db2_2657_70d0793f7d8e["MySqlSchema"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> b8ffbc78_4812_3db2_2657_70d0793f7d8e
  cbf63853_6723_30fc_5ded_88a8944f77c4["pgSchema.ts"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> cbf63853_6723_30fc_5ded_88a8944f77c4
  b5617e13_ea8f_6fe9_4a65_de1491ad2dee["PgSchema"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> b5617e13_ea8f_6fe9_4a65_de1491ad2dee
  d63c81a6_6779_4926_bffe_7351e12a4301["singlestoreSchema.ts"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> d63c81a6_6779_4926_bffe_7351e12a4301
  5d7af7c9_2397_c936_d48c_184fefbb0f58["SingleStoreSchema"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> 5d7af7c9_2397_c936_d48c_184fefbb0f58
  03c276d3_0efe_66e2_9ba9_e67edbf29418["sqliteSchema.ts"]
  4078709f_3fc0_5514_7728_8f28a7b0e807 --> 03c276d3_0efe_66e2_9ba9_e67edbf29418
  style 4078709f_3fc0_5514_7728_8f28a7b0e807 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { randomUUID } from 'crypto';
import fs from 'fs';
import { CasingType } from './cli/validations/common';
import { serializeMySql, serializePg, serializeSingleStore, serializeSQLite } from './serializer';
import { dryMySql, MySqlSchema, mysqlSchema } from './serializer/mysqlSchema';
import { dryPg, PgSchema, pgSchema } from './serializer/pgSchema';
import { drySingleStore, SingleStoreSchema, singlestoreSchema } from './serializer/singlestoreSchema';
import { drySQLite, SQLiteSchema, sqliteSchema } from './serializer/sqliteSchema';

export const prepareMySqlDbPushSnapshot = async (
	prev: MySqlSchema,
	schemaPath: string | string[],
	casing: CasingType | undefined,
): Promise<{ prev: MySqlSchema; cur: MySqlSchema }> => {
	const serialized = await serializeMySql(schemaPath, casing);

	const id = randomUUID();
	const idPrev = prev.id;

	const { version, dialect, ...rest } = serialized;
	const result: MySqlSchema = { version, dialect, id, prevId: idPrev, ...rest };

	return { prev, cur: result };
};

export const prepareSingleStoreDbPushSnapshot = async (
	prev: SingleStoreSchema,
	schemaPath: string | string[],
	casing: CasingType | undefined,
): Promise<{ prev: SingleStoreSchema; cur: SingleStoreSchema }> => {
	const serialized = await serializeSingleStore(schemaPath, casing);

	const id = randomUUID();
	const idPrev = prev.id;

	const { version, dialect, ...rest } = serialized;
	const result: SingleStoreSchema = { version, dialect, id, prevId: idPrev, ...rest };

	return { prev, cur: result };
};

export const prepareSQLiteDbPushSnapshot = async (
	prev: SQLiteSchema,
	schemaPath: string | string[],
	casing: CasingType | undefined,
): Promise<{ prev: SQLiteSchema; cur: SQLiteSchema }> => {
	const serialized = await serializeSQLite(schemaPath, casing);

	const id = randomUUID();
	const idPrev = prev.id;

	const { version, dialect, ...rest } = serialized;
	const result: SQLiteSchema = {
		version,
		dialect,
		id,
		prevId: idPrev,
		...rest,
	};

// ... (149 more lines)

Domain

Subdomains

Frequently Asked Questions

What does migrationPreparator.ts do?
migrationPreparator.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleKit domain, SnapshotSerializer subdomain.
What functions are defined in migrationPreparator.ts?
migrationPreparator.ts defines 9 function(s): prepareMySqlDbPushSnapshot, prepareMySqlMigrationSnapshot, preparePgDbPushSnapshot, preparePgMigrationSnapshot, preparePrevSnapshot, prepareSQLiteDbPushSnapshot, prepareSingleStoreDbPushSnapshot, prepareSingleStoreMigrationSnapshot, prepareSqliteMigrationSnapshot.
What does migrationPreparator.ts depend on?
migrationPreparator.ts imports 17 module(s): CasingType, MySqlSchema, PgSchema, SQLiteSchema, SingleStoreSchema, common.ts, crypto, fs, and 9 more.
What files import migrationPreparator.ts?
migrationPreparator.ts is imported by 1 file(s): migrate.ts.
Where is migrationPreparator.ts in the architecture?
migrationPreparator.ts is located at drizzle-kit/src/migrationPreparator.ts (domain: DrizzleKit, subdomain: SnapshotSerializer, directory: drizzle-kit/src).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free