convert() — drizzle-orm Function Reference
Architecture documentation for the convert() function in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD aca821b2_b407_7075_a020_0b97ae4b1e10["convert()"] dd294fb2_8739_cd25_f681_d2eff5517675["PgAlterTableAlterColumnSetTypeConvertor"] aca821b2_b407_7075_a020_0b97ae4b1e10 -->|defined in| dd294fb2_8739_cd25_f681_d2eff5517675 b0591d99_981e_0c05_5ac1_486f87aa1678["parseType()"] aca821b2_b407_7075_a020_0b97ae4b1e10 -->|calls| b0591d99_981e_0c05_5ac1_486f87aa1678 style aca821b2_b407_7075_a020_0b97ae4b1e10 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 1903–1963
convert(statement: JsonAlterColumnPgTypeStatement) {
const { tableName, columnName, newDataType, schema, oldDataType, columnDefault, typeSchema } = statement;
const tableNameWithSchema = schema
? `"${schema}"."${tableName}"`
: `"${tableName}"`;
const statements: string[] = [];
const type = parseType(`"${typeSchema}".`, newDataType.name);
if (!oldDataType.isEnum && !newDataType.isEnum) {
statements.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type};`,
);
if (columnDefault) {
statements.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault};`,
);
}
}
if (oldDataType.isEnum && !newDataType.isEnum) {
statements.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type};`,
);
if (columnDefault) {
statements.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault};`,
);
}
}
if (!oldDataType.isEnum && newDataType.isEnum) {
if (columnDefault) {
statements.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault}::${type};`,
);
}
statements.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type} USING "${columnName}"::${type};`,
);
}
if (oldDataType.isEnum && newDataType.isEnum) {
const alterType =
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type} USING "${columnName}"::text::${type};`;
if (newDataType.name !== oldDataType.name && columnDefault) {
statements.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP DEFAULT;`,
alterType,
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault};`,
);
} else {
statements.push(alterType);
}
}
return statements;
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does convert() do?
convert() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is convert() defined?
convert() is defined in drizzle-kit/src/sqlgenerator.ts at line 1903.
What does convert() call?
convert() calls 1 function(s): parseType.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free