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

Relationship Graph

Source Code

drizzle-orm/src/singlestore-proxy/migrator.ts lines 8–52

export async function migrate<TSchema extends Record<string, unknown>>(
	db: SingleStoreRemoteDatabase<TSchema>,
	callback: ProxyMigrator,
	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.execute(migrationTableCreate);

	const dbMigrations = await db.select({
		id: sql.raw('id'),
		hash: sql.raw('hash'),
		created_at: sql.raw('created_at'),
	}).from(sql.identifier(migrationsTable).getSQL()).orderBy(
		sql.raw('created_at desc'),
	).limit(1);

	const lastDbMigration = dbMigrations[0];

	const queriesToRun: string[] = [];

	for (const migration of migrations) {
		if (
			!lastDbMigration
			|| Number(lastDbMigration.created_at) < migration.folderMillis
		) {
			queriesToRun.push(
				...migration.sql,
				`insert into ${
					sql.identifier(migrationsTable).value
				} (\`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/singlestore-proxy/migrator.ts.
Where is migrate() defined?
migrate() is defined in drizzle-orm/src/singlestore-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