connectToSingleStore() — drizzle-orm Function Reference
Architecture documentation for the connectToSingleStore() function in connections.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD a48b207b_f1ec_2aa2_152e_adc4eccb325f["connectToSingleStore()"] 4e02c2bb_54a8_1500_813e_2cafd1ad4f59["connections.ts"] a48b207b_f1ec_2aa2_152e_adc4eccb325f -->|defined in| 4e02c2bb_54a8_1500_813e_2cafd1ad4f59 af9a4268_0785_3637_690c_5dafd816452a["parseSingleStoreCredentials()"] a48b207b_f1ec_2aa2_152e_adc4eccb325f -->|calls| af9a4268_0785_3637_690c_5dafd816452a 7aefe3aa_a868_e43f_09eb_fcf0004526d1["checkPackage()"] a48b207b_f1ec_2aa2_152e_adc4eccb325f -->|calls| 7aefe3aa_a868_e43f_09eb_fcf0004526d1 style a48b207b_f1ec_2aa2_152e_adc4eccb325f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/cli/connections.ts lines 642–716
export const connectToSingleStore = async (
it: SingleStoreCredentials,
): Promise<{
db: DB;
packageName: 'mysql2';
proxy: Proxy;
transactionProxy: TransactionProxy;
database: string;
migrate: (config: MigrationConfig) => Promise<void>;
}> => {
const result = parseSingleStoreCredentials(it);
if (await checkPackage('mysql2')) {
const { createConnection } = await import('mysql2/promise');
const { drizzle } = await import('drizzle-orm/singlestore');
const { migrate } = await import('drizzle-orm/singlestore/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);
};
await connection.connect();
const query: DB['query'] = async <T>(
sql: string,
params?: any[],
): Promise<T[]> => {
const res = await connection.execute(sql, params);
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',
});
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,
};
}
console.error(
"To connect to SingleStore database - please install 'mysql2' driver",
);
process.exit(1);
};
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does connectToSingleStore() do?
connectToSingleStore() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/cli/connections.ts.
Where is connectToSingleStore() defined?
connectToSingleStore() is defined in drizzle-kit/src/cli/connections.ts at line 642.
What does connectToSingleStore() call?
connectToSingleStore() calls 2 function(s): checkPackage, parseSingleStoreCredentials.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free