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

migrate() — drizzle-orm Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  54ccb907_d126_1ea5_56ab_12847340fd47["migrate()"]
  29247d4f_c72d_29d8_1020_4e820195e212["SQLiteAsyncDialect"]
  54ccb907_d126_1ea5_56ab_12847340fd47 -->|defined in| 29247d4f_c72d_29d8_1020_4e820195e212
  86e97d66_e1da_64df_7876_93f94aebf1ac["migrate()"]
  86e97d66_e1da_64df_7876_93f94aebf1ac -->|calls| 54ccb907_d126_1ea5_56ab_12847340fd47
  86e97d66_e1da_64df_7876_93f94aebf1ac["migrate()"]
  54ccb907_d126_1ea5_56ab_12847340fd47 -->|calls| 86e97d66_e1da_64df_7876_93f94aebf1ac
  style 54ccb907_d126_1ea5_56ab_12847340fd47 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/sqlite-core/dialect.ts lines 885–925

	async migrate(
		migrations: MigrationMeta[],
		session: SQLiteSession<'async', any, any, any>,
		config?: string | MigrationConfig,
	): Promise<void> {
		const migrationsTable = config === undefined
			? '__drizzle_migrations'
			: typeof config === 'string'
			? '__drizzle_migrations'
			: 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 numeric
			)
		`;
		await session.run(migrationTableCreate);

		const dbMigrations = await session.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;

		await session.transaction(async (tx) => {
			for (const migration of migrations) {
				if (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {
					for (const stmt of migration.sql) {
						await tx.run(sql.raw(stmt));
					}
					await tx.run(
						sql`INSERT INTO ${
							sql.identifier(migrationsTable)
						} ("hash", "created_at") VALUES(${migration.hash}, ${migration.folderMillis})`,
					);
				}
			}
		});
	}

Domain

Subdomains

Calls

Called By

Frequently Asked Questions

What does migrate() do?
migrate() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/sqlite-core/dialect.ts.
Where is migrate() defined?
migrate() is defined in drizzle-orm/src/sqlite-core/dialect.ts at line 885.
What does migrate() call?
migrate() calls 1 function(s): migrate.
What calls migrate()?
migrate() is called by 1 function(s): migrate.

Analyze Your Own Codebase

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

Try Supermodel Free