Home / Function/ prepareAndMigratePg() — drizzle-orm Function Reference

prepareAndMigratePg() — drizzle-orm Function Reference

Architecture documentation for the prepareAndMigratePg() function in migrate.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  285d7baa_1c76_20e1_0c68_26eaff3a4a05["prepareAndMigratePg()"]
  b14d3855_8cce_38c9_8952_a9d014c2fb1b["migrate.ts"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|defined in| b14d3855_8cce_38c9_8952_a9d014c2fb1b
  5f10022b_622b_eb8e_812e_30a6459027c8["assertV1OutFolder()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| 5f10022b_622b_eb8e_812e_30a6459027c8
  0b87f963_e54e_497f_7271_110d21942e56["prepareMigrationFolder()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| 0b87f963_e54e_497f_7271_110d21942e56
  3311f44b_d157_63e7_4694_edf07b92c90e["preparePgMigrationSnapshot()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| 3311f44b_d157_63e7_4694_edf07b92c90e
  cb2d3951_4fcb_d824_359b_9f044d2f7e6c["writeResult()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| cb2d3951_4fcb_d824_359b_9f044d2f7e6c
  60cccf3e_0a08_14d7_0d22_dfaeb6777eb0["squashPgScheme()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| 60cccf3e_0a08_14d7_0d22_dfaeb6777eb0
  c7a398db_43c9_7771_09b7_73bc09e703e8["applyPgSnapshotsDiff()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| c7a398db_43c9_7771_09b7_73bc09e703e8
  b0ef3d06_896b_eefc_c410_dfb419673d70["error()"]
  285d7baa_1c76_20e1_0c68_26eaff3a4a05 -->|calls| b0ef3d06_896b_eefc_c410_dfb419673d70
  style 285d7baa_1c76_20e1_0c68_26eaff3a4a05 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/cli/commands/migrate.ts lines 302–369

export const prepareAndMigratePg = async (config: GenerateConfig) => {
	const outFolder = config.out;
	const schemaPath = config.schema;
	const casing = config.casing;

	try {
		assertV1OutFolder(outFolder);

		const { snapshots, journal } = prepareMigrationFolder(
			outFolder,
			'postgresql',
		);

		const { prev, cur, custom } = await preparePgMigrationSnapshot(
			snapshots,
			schemaPath,
			casing,
		);

		const validatedPrev = pgSchema.parse(prev);
		const validatedCur = pgSchema.parse(cur);

		if (config.custom) {
			writeResult({
				cur: custom,
				sqlStatements: [],
				journal,
				outFolder,
				name: config.name,
				breakpoints: config.breakpoints,
				type: 'custom',
				prefixMode: config.prefix,
			});
			return;
		}

		const squashedPrev = squashPgScheme(validatedPrev);
		const squashedCur = squashPgScheme(validatedCur);

		const { sqlStatements, _meta } = await applyPgSnapshotsDiff(
			squashedPrev,
			squashedCur,
			schemasResolver,
			enumsResolver,
			sequencesResolver,
			policyResolver,
			indPolicyResolver,
			roleResolver,
			tablesResolver,
			columnsResolver,
			viewsResolver,
			validatedPrev,
			validatedCur,
		);

		writeResult({
			cur,
			sqlStatements,
			journal,
			outFolder,
			name: config.name,
			breakpoints: config.breakpoints,
			prefixMode: config.prefix,
		});
	} catch (e) {
		console.error(e);
	}
};

Domain

Subdomains

Frequently Asked Questions

What does prepareAndMigratePg() do?
prepareAndMigratePg() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/cli/commands/migrate.ts.
Where is prepareAndMigratePg() defined?
prepareAndMigratePg() is defined in drizzle-kit/src/cli/commands/migrate.ts at line 302.
What does prepareAndMigratePg() call?
prepareAndMigratePg() calls 7 function(s): applyPgSnapshotsDiff, assertV1OutFolder, error, prepareMigrationFolder, preparePgMigrationSnapshot, squashPgScheme, writeResult.

Analyze Your Own Codebase

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

Try Supermodel Free