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
Defined In
Source
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