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
  0d623036_b199_8b3b_cb5f_f1302b90809e["migrate()"]
  9968bfac_85c0_4a20_fc14_94b2593d793b["migrator.ts"]
  0d623036_b199_8b3b_cb5f_f1302b90809e -->|defined in| 9968bfac_85c0_4a20_fc14_94b2593d793b
  7cddbd66_0608_0488_fc3b_32e74dc95354["readMigrationFiles()"]
  0d623036_b199_8b3b_cb5f_f1302b90809e -->|calls| 7cddbd66_0608_0488_fc3b_32e74dc95354
  style 0d623036_b199_8b3b_cb5f_f1302b90809e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/durable-sqlite/migrator.ts lines 41–85

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

	db.transaction((tx) => {
		try {
			const migrationsTable = '__drizzle_migrations';

			const migrationTableCreate = sql`
				CREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (
					id SERIAL PRIMARY KEY,
					hash text NOT NULL,
					created_at numeric
				)
			`;
			db.run(migrationTableCreate);

			const dbMigrations = db.values<[number, string, string]>(
				sql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,
			);

			const lastDbMigration = dbMigrations[0] ?? undefined;

			for (const migration of migrations) {
				if (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {
					for (const stmt of migration.sql) {
						db.run(sql.raw(stmt));
					}
					db.run(
						sql`INSERT INTO ${
							sql.identifier(migrationsTable)
						} ("hash", "created_at") VALUES(${migration.hash}, ${migration.folderMillis})`,
					);
				}
			}
		} catch (error: any) {
			tx.rollback();
			throw error;
		}
	});
}

Domain

Subdomains

Frequently Asked Questions

What does migrate() do?
migrate() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/durable-sqlite/migrator.ts.
Where is migrate() defined?
migrate() is defined in drizzle-orm/src/durable-sqlite/migrator.ts at line 41.
What does migrate() call?
migrate() calls 1 function(s): readMigrationFiles.

Analyze Your Own Codebase

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

Try Supermodel Free