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

migrate() — drizzle-orm Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  d483748f_3878_1d11_4444_b6e232b9765f["migrate()"]
  66b88352_79db_3eb3_b594_8072321c5f6b["migrator.ts"]
  d483748f_3878_1d11_4444_b6e232b9765f -->|defined in| 66b88352_79db_3eb3_b594_8072321c5f6b
  style d483748f_3878_1d11_4444_b6e232b9765f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/pg-proxy/migrator.ts lines 8–51

export async function migrate<TSchema extends Record<string, unknown>>(
	db: PgRemoteDatabase<TSchema>,
	callback: ProxyMigrator,
	config: MigrationConfig,
) {
	const migrations = readMigrationFiles(config);

	const migrationTableCreate = sql`
		CREATE TABLE IF NOT EXISTS "drizzle"."__drizzle_migrations" (
			id SERIAL PRIMARY KEY,
			hash text NOT NULL,
			created_at numeric
		)
	`;

	await db.execute(sql`CREATE SCHEMA IF NOT EXISTS "drizzle"`);
	await db.execute(migrationTableCreate);

	const dbMigrations = await db.execute<{
		id: number;
		hash: string;
		created_at: string;
	}>(
		sql`SELECT id, hash, created_at FROM "drizzle"."__drizzle_migrations" ORDER BY created_at DESC LIMIT 1`,
	);

	const lastDbMigration = dbMigrations[0] ?? undefined;

	const queriesToRun: string[] = [];

	for (const migration of migrations) {
		if (
			!lastDbMigration
			|| Number(lastDbMigration.created_at)! < migration.folderMillis
		) {
			queriesToRun.push(
				...migration.sql,
				`INSERT INTO "drizzle"."__drizzle_migrations" ("hash", "created_at") VALUES('${migration.hash}', '${migration.folderMillis}')`,
			);
		}
	}

	await callback(queriesToRun);
}

Domain

Subdomains

Frequently Asked Questions

What does migrate() do?
migrate() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/pg-proxy/migrator.ts.
Where is migrate() defined?
migrate() is defined in drizzle-orm/src/pg-proxy/migrator.ts at line 8.

Analyze Your Own Codebase

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

Try Supermodel Free