SQLiteSyncDialect Class — drizzle-orm Architecture
Architecture documentation for the SQLiteSyncDialect class in dialect.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 4f047e7d_6612_7a43_25aa_77636956aa77["SQLiteSyncDialect"] 209e34fa_8ae1_5a1a_23cb_e4720fd5b915["dialect.ts"] 4f047e7d_6612_7a43_25aa_77636956aa77 -->|defined in| 209e34fa_8ae1_5a1a_23cb_e4720fd5b915 86e97d66_e1da_64df_7876_93f94aebf1ac["migrate()"] 4f047e7d_6612_7a43_25aa_77636956aa77 -->|method| 86e97d66_e1da_64df_7876_93f94aebf1ac
Relationship Graph
Source Code
drizzle-orm/src/sqlite-core/dialect.ts lines 830–880
export class SQLiteSyncDialect extends SQLiteDialect {
static override readonly [entityKind]: string = 'SQLiteSyncDialect';
migrate(
migrations: MigrationMeta[],
session: SQLiteSession<'sync', unknown, Record<string, unknown>, TablesRelationalConfig>,
config?: string | MigrationConfig,
): 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
)
`;
session.run(migrationTableCreate);
const dbMigrations = 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;
session.run(sql`BEGIN`);
try {
for (const migration of migrations) {
if (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {
for (const stmt of migration.sql) {
session.run(sql.raw(stmt));
}
session.run(
sql`INSERT INTO ${
sql.identifier(migrationsTable)
} ("hash", "created_at") VALUES(${migration.hash}, ${migration.folderMillis})`,
);
}
}
session.run(sql`COMMIT`);
} catch (e) {
session.run(sql`ROLLBACK`);
throw e;
}
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the SQLiteSyncDialect class?
SQLiteSyncDialect is a class in the drizzle-orm codebase, defined in drizzle-orm/src/sqlite-core/dialect.ts.
Where is SQLiteSyncDialect defined?
SQLiteSyncDialect is defined in drizzle-orm/src/sqlite-core/dialect.ts at line 830.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free