createTableColumns() — drizzle-orm Function Reference
Architecture documentation for the createTableColumns() function in introspect-mysql.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 66cb9854_27ce_f964_9c23_6dd6fd021ba0["createTableColumns()"] 1198bdc6_ac5c_88c0_dda6_b8caf0f5d9fa["introspect-mysql.ts"] 66cb9854_27ce_f964_9c23_6dd6fd021ba0 -->|defined in| 1198bdc6_ac5c_88c0_dda6_b8caf0f5d9fa 194539cf_d577_ab5e_4ea9_ec2fd5ee230b["schemaToTypeScript()"] 194539cf_d577_ab5e_4ea9_ec2fd5ee230b -->|calls| 66cb9854_27ce_f964_9c23_6dd6fd021ba0 6f3dbbc9_96f5_0c1c_51a1_967c5c835786["isSelf()"] 66cb9854_27ce_f964_9c23_6dd6fd021ba0 -->|calls| 6f3dbbc9_96f5_0c1c_51a1_967c5c835786 ab820e0b_412e_ee12_13bc_dbb2e64f13bb["column()"] 66cb9854_27ce_f964_9c23_6dd6fd021ba0 -->|calls| ab820e0b_412e_ee12_13bc_dbb2e64f13bb ebb79cf5_a507_ad19_ebbe_4a56a47233dc["isCyclic()"] 66cb9854_27ce_f964_9c23_6dd6fd021ba0 -->|calls| ebb79cf5_a507_ad19_ebbe_4a56a47233dc b62c36d5_1539_5473_9c71_9de637a9a74c["objToStatement2()"] 66cb9854_27ce_f964_9c23_6dd6fd021ba0 -->|calls| b62c36d5_1539_5473_9c71_9de637a9a74c style 66cb9854_27ce_f964_9c23_6dd6fd021ba0 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/introspect-mysql.ts lines 818–899
const createTableColumns = (
columns: Column[],
fks: ForeignKey[],
casing: (val: string) => string,
rawCasing: Casing,
tableName: string,
schema: MySqlSchemaInternal,
): string => {
let statement = '';
// no self refs and no cyclic
const oneColumnsFKs = Object.values(fks)
.filter((it) => {
return !isSelf(it);
})
.filter((it) => it.columnsFrom.length === 1);
const fkByColumnName = oneColumnsFKs.reduce((res, it) => {
const arr = res[it.columnsFrom[0]] || [];
arr.push(it);
res[it.columnsFrom[0]] = arr;
return res;
}, {} as Record<string, ForeignKey[]>);
columns.forEach((it) => {
statement += '\t';
statement += column(
it.type,
it.name,
casing,
rawCasing,
it.default,
it.autoincrement,
it.onUpdate,
schema.internal?.tables![tableName]?.columns[it.name]
?.isDefaultAnExpression ?? false,
);
statement += it.primaryKey ? '.primaryKey()' : '';
statement += it.notNull ? '.notNull()' : '';
statement += it.generated
? `.generatedAlwaysAs(sql\`${
it.generated.as.replace(
/`/g,
'\\`',
)
}\`, { mode: "${it.generated.type}" })`
: '';
const fks = fkByColumnName[it.name];
if (fks) {
const fksStatement = fks
.map((it) => {
const onDelete = it.onDelete && it.onDelete !== 'no action' ? it.onDelete : null;
const onUpdate = it.onUpdate && it.onUpdate !== 'no action' ? it.onUpdate : null;
const params = { onDelete, onUpdate };
const typeSuffix = isCyclic(it) ? ': AnyMySqlColumn' : '';
const paramsStr = objToStatement2(params);
if (paramsStr) {
return `.references(()${typeSuffix} => ${
casing(
it.tableTo,
)
}.${casing(it.columnsTo[0])}, ${paramsStr} )`;
}
return `.references(()${typeSuffix} => ${casing(it.tableTo)}.${
casing(
it.columnsTo[0],
)
})`;
})
.join('');
statement += fksStatement;
}
statement += ',\n';
});
return statement;
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does createTableColumns() do?
createTableColumns() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/introspect-mysql.ts.
Where is createTableColumns() defined?
createTableColumns() is defined in drizzle-kit/src/introspect-mysql.ts at line 818.
What does createTableColumns() call?
createTableColumns() calls 4 function(s): column, isCyclic, isSelf, objToStatement2.
What calls createTableColumns()?
createTableColumns() is called by 1 function(s): schemaToTypeScript.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free