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
  90a97b89_75ba_9a85_ee97_0238bcae2c31["migrate()"]
  6fd7cb0a_8ff7_94fe_5fa1_18f4acd5f695["migrator.ts"]
  90a97b89_75ba_9a85_ee97_0238bcae2c31 -->|defined in| 6fd7cb0a_8ff7_94fe_5fa1_18f4acd5f695
  style 90a97b89_75ba_9a85_ee97_0238bcae2c31 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/xata-http/migrator.ts lines 17–55

 */ export async function migrate<TSchema extends Record<string, unknown>>(
	db: XataHttpDatabase<TSchema>,
	config: MigrationConfig,
) {
	const migrations = readMigrationFiles(config);
	const migrationsTable = config.migrationsTable ?? '__drizzle_migrations';
	const migrationTableCreate = sql`
		CREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (
			id SERIAL PRIMARY KEY,
			hash text NOT NULL,
			created_at bigint
		)
	`;
	await db.session.execute(migrationTableCreate);

	const dbMigrations = await db.session.all<{
		id: number;
		hash: string;
		created_at: string;
	}>(
		sql`select id, hash, created_at from ${sql.identifier(migrationsTable)} order by created_at desc limit 1`,
	);

	const lastDbMigration = dbMigrations[0];

	for await (const migration of migrations) {
		if (!lastDbMigration || Number(lastDbMigration.created_at) < migration.folderMillis) {
			for (const stmt of migration.sql) {
				await db.session.execute(sql.raw(stmt));
			}

			await db.session.execute(
				sql`insert into ${
					sql.identifier(migrationsTable)
				} ("hash", "created_at") values(${migration.hash}, ${migration.folderMillis})`,
			);
		}
	}
}

Domain

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free