MySql2Transaction Class — drizzle-orm Architecture
Architecture documentation for the MySql2Transaction class in session.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 021be121_52f7_a344_035f_56374d0dd9ef["MySql2Transaction"] 4f23092f_3066_0d48_8396_c28751f25d01["session.ts"] 021be121_52f7_a344_035f_56374d0dd9ef -->|defined in| 4f23092f_3066_0d48_8396_c28751f25d01 281944dd_c9ab_27a8_fd24_20b3c5b86a80["transaction()"] 021be121_52f7_a344_035f_56374d0dd9ef -->|method| 281944dd_c9ab_27a8_fd24_20b3c5b86a80
Relationship Graph
Source Code
drizzle-orm/src/mysql2/session.ts lines 325–350
export class MySql2Transaction<
TFullSchema extends Record<string, unknown>,
TSchema extends TablesRelationalConfig,
> extends MySqlTransaction<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TFullSchema, TSchema> {
static override readonly [entityKind]: string = 'MySql2Transaction';
override async transaction<T>(transaction: (tx: MySql2Transaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {
const savepointName = `sp${this.nestedIndex + 1}`;
const tx = new MySql2Transaction<TFullSchema, TSchema>(
this.dialect,
this.session,
this.schema,
this.nestedIndex + 1,
this.mode,
);
await tx.execute(sql.raw(`savepoint ${savepointName}`));
try {
const result = await transaction(tx);
await tx.execute(sql.raw(`release savepoint ${savepointName}`));
return result;
} catch (err) {
await tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));
throw err;
}
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the MySql2Transaction class?
MySql2Transaction is a class in the drizzle-orm codebase, defined in drizzle-orm/src/mysql2/session.ts.
Where is MySql2Transaction defined?
MySql2Transaction is defined in drizzle-orm/src/mysql2/session.ts at line 325.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free