connectToMySQL() — drizzle-orm Function Reference
Architecture documentation for the connectToMySQL() function in connections.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 062566a8_032a_e9e8_19de_d3efea4be507["connectToMySQL()"] 4e02c2bb_54a8_1500_813e_2cafd1ad4f59["connections.ts"] 062566a8_032a_e9e8_19de_d3efea4be507 -->|defined in| 4e02c2bb_54a8_1500_813e_2cafd1ad4f59 f2f3a989_a4ab_1dd7_33fb_fd4006db7b5b["parseMysqlCredentials()"] 062566a8_032a_e9e8_19de_d3efea4be507 -->|calls| f2f3a989_a4ab_1dd7_33fb_fd4006db7b5b 7aefe3aa_a868_e43f_09eb_fcf0004526d1["checkPackage()"] 062566a8_032a_e9e8_19de_d3efea4be507 -->|calls| 7aefe3aa_a868_e43f_09eb_fcf0004526d1 style 062566a8_032a_e9e8_19de_d3efea4be507 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/cli/connections.ts lines 741–879
export const connectToMySQL = async (
it: MysqlCredentials,
): Promise<{
db: DB;
packageName: 'mysql2' | '@planetscale/database';
proxy: Proxy;
transactionProxy: TransactionProxy;
database: string;
migrate: (config: MigrationConfig) => Promise<void>;
}> => {
const result = parseMysqlCredentials(it);
if (await checkPackage('mysql2')) {
const { createConnection } = await import('mysql2/promise');
const { drizzle } = await import('drizzle-orm/mysql2');
const { migrate } = await import('drizzle-orm/mysql2/migrator');
const connection = result.url
? await createConnection(result.url)
: await createConnection(result.credentials!); // needed for some reason!
const db = drizzle(connection);
const migrateFn = async (config: MigrationConfig) => {
return migrate(db, config);
};
const typeCast = (field: any, next: any) => {
if (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {
return field.string();
}
return next();
};
await connection.connect();
const query: DB['query'] = async <T>(
sql: string,
params?: any[],
): Promise<T[]> => {
const res = await connection.execute({
sql,
values: params,
typeCast,
});
return res[0] as any;
};
const proxy: Proxy = async (params: ProxyParams) => {
const result = await connection.query({
sql: params.sql,
values: params.params,
rowsAsArray: params.mode === 'array',
typeCast,
});
return result[0] as any[];
};
const transactionProxy: TransactionProxy = async (queries) => {
const results: any[] = [];
try {
await connection.beginTransaction();
for (const query of queries) {
const res = await connection.query(query.sql);
results.push(res[0]);
}
await connection.commit();
} catch (error) {
await connection.rollback();
results.push(error as Error);
}
return results;
};
return {
db: { query },
packageName: 'mysql2',
proxy,
transactionProxy,
database: result.database,
migrate: migrateFn,
};
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does connectToMySQL() do?
connectToMySQL() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/cli/connections.ts.
Where is connectToMySQL() defined?
connectToMySQL() is defined in drizzle-kit/src/cli/connections.ts at line 741.
What does connectToMySQL() call?
connectToMySQL() calls 2 function(s): checkPackage, parseMysqlCredentials.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free