PgAlterTableAlterColumnAlterGenerated Class — drizzle-orm Architecture
Architecture documentation for the PgAlterTableAlterColumnAlterGenerated class in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD c2d718e1_c141_1b4c_206e_91998f6b8e7d["PgAlterTableAlterColumnAlterGenerated"] fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] c2d718e1_c141_1b4c_206e_91998f6b8e7d -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939 5afcc974_1ffb_921c_dbe8_1bb5be6a8db5["can()"] c2d718e1_c141_1b4c_206e_91998f6b8e7d -->|method| 5afcc974_1ffb_921c_dbe8_1bb5be6a8db5 681f00b4_7a37_30c2_4cae_192d272777ac["convert()"] c2d718e1_c141_1b4c_206e_91998f6b8e7d -->|method| 681f00b4_7a37_30c2_4cae_192d272777ac
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 1073–1142
class PgAlterTableAlterColumnAlterGenerated extends Convertor {
override can(statement: JsonStatement, dialect: Dialect): boolean {
return (
statement.type === 'alter_table_alter_column_change_identity'
&& dialect === 'postgresql'
);
}
override convert(
statement: JsonAlterColumnAlterIdentityStatement,
): string | string[] {
const { identity, oldIdentity, tableName, columnName, schema } = statement;
const tableNameWithSchema = schema
? `"${schema}"."${tableName}"`
: `"${tableName}"`;
const unsquashedIdentity = PgSquasher.unsquashIdentity(identity);
const unsquashedOldIdentity = PgSquasher.unsquashIdentity(oldIdentity);
const statementsToReturn: string[] = [];
if (unsquashedOldIdentity.type !== unsquashedIdentity.type) {
statementsToReturn.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET GENERATED ${
unsquashedIdentity.type === 'always' ? 'ALWAYS' : 'BY DEFAULT'
};`,
);
}
if (unsquashedOldIdentity.minValue !== unsquashedIdentity.minValue) {
statementsToReturn.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET MINVALUE ${unsquashedIdentity.minValue};`,
);
}
if (unsquashedOldIdentity.maxValue !== unsquashedIdentity.maxValue) {
statementsToReturn.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET MAXVALUE ${unsquashedIdentity.maxValue};`,
);
}
if (unsquashedOldIdentity.increment !== unsquashedIdentity.increment) {
statementsToReturn.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET INCREMENT BY ${unsquashedIdentity.increment};`,
);
}
if (unsquashedOldIdentity.startWith !== unsquashedIdentity.startWith) {
statementsToReturn.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET START WITH ${unsquashedIdentity.startWith};`,
);
}
if (unsquashedOldIdentity.cache !== unsquashedIdentity.cache) {
statementsToReturn.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET CACHE ${unsquashedIdentity.cache};`,
);
}
if (unsquashedOldIdentity.cycle !== unsquashedIdentity.cycle) {
statementsToReturn.push(
`ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET ${
unsquashedIdentity.cycle ? `CYCLE` : 'NO CYCLE'
};`,
);
}
return statementsToReturn;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the PgAlterTableAlterColumnAlterGenerated class?
PgAlterTableAlterColumnAlterGenerated is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is PgAlterTableAlterColumnAlterGenerated defined?
PgAlterTableAlterColumnAlterGenerated is defined in drizzle-kit/src/sqlgenerator.ts at line 1073.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free