withReplicas() — drizzle-orm Function Reference
Architecture documentation for the withReplicas() function in db.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738["withReplicas()"] 55a32696_6538_e52d_9dd2_18695934fe32["db.ts"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|defined in| 55a32696_6538_e52d_9dd2_18695934fe32 d9537013_dc8d_a9d5_6b54_e1724abbdd2f["select()"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|calls| d9537013_dc8d_a9d5_6b54_e1724abbdd2f 1a12f96f_7b6a_911e_9e6f_4669ecb64b4f["selectDistinct()"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|calls| 1a12f96f_7b6a_911e_9e6f_4669ecb64b4f 7d0caa08_9013_3d08_d559_97226a65da99["update()"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|calls| 7d0caa08_9013_3d08_d559_97226a65da99 62c45664_eb64_3a1d_8f7d_f6902281c37f["insert()"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|calls| 62c45664_eb64_3a1d_8f7d_f6902281c37f bb5b0e59_e8b3_8d1c_fe75_9eed0b8f371b["execute()"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|calls| bb5b0e59_e8b3_8d1c_fe75_9eed0b8f371b 80122acc_0876_1ed2_a42b_578f382b11a7["transaction()"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|calls| 80122acc_0876_1ed2_a42b_578f382b11a7 000b48d8_e365_427b_6fb5_c012ef49681f["$count()"] 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 -->|calls| 000b48d8_e365_427b_6fb5_c012ef49681f style 3d5d57d7_f20f_9ae1_9eba_ee85dbf56738 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/mysql-core/db.ts lines 493–537
export const withReplicas = <
HKT extends MySqlQueryResultHKT,
TPreparedQueryHKT extends PreparedQueryHKTBase,
TFullSchema extends Record<string, unknown>,
TSchema extends TablesRelationalConfig,
Q extends MySqlDatabase<
HKT,
TPreparedQueryHKT,
TFullSchema,
TSchema extends Record<string, unknown> ? ExtractTablesWithRelations<TFullSchema> : TSchema
>,
>(
primary: Q,
replicas: [Q, ...Q[]],
getReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,
): MySQLWithReplicas<Q> => {
const select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);
const selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);
const $count: Q['$count'] = (...args: [any]) => getReplica(replicas).$count(...args);
const $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);
const update: Q['update'] = (...args: [any]) => primary.update(...args);
const insert: Q['insert'] = (...args: [any]) => primary.insert(...args);
const $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);
const execute: Q['execute'] = (...args: [any]) => primary.execute(...args);
const transaction: Q['transaction'] = (...args: [any, any]) => primary.transaction(...args);
return {
...primary,
update,
insert,
delete: $delete,
execute,
transaction,
$primary: primary,
$replicas: replicas,
select,
selectDistinct,
$count,
with: $with,
get query() {
return getReplica(replicas).query;
},
};
};
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does withReplicas() do?
withReplicas() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/db.ts.
Where is withReplicas() defined?
withReplicas() is defined in drizzle-orm/src/mysql-core/db.ts at line 493.
What does withReplicas() call?
withReplicas() calls 7 function(s): $count, execute, insert, select, selectDistinct, transaction, update.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free