Home / Function/ prepareSqliteAlterColumns() — drizzle-orm Function Reference

prepareSqliteAlterColumns() — drizzle-orm Function Reference

Architecture documentation for the prepareSqliteAlterColumns() function in jsonStatements.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  5159c0a2_d33b_db96_9ad3_26954a8ce206["prepareSqliteAlterColumns()"]
  6139f734_8ada_c641_9fec_9a55cfdf376f["jsonStatements.ts"]
  5159c0a2_d33b_db96_9ad3_26954a8ce206 -->|defined in| 6139f734_8ada_c641_9fec_9a55cfdf376f
  d9097b7e_1e27_d29f_7732_f2fa1447f2b8["applySqliteSnapshotsDiff()"]
  d9097b7e_1e27_d29f_7732_f2fa1447f2b8 -->|calls| 5159c0a2_d33b_db96_9ad3_26954a8ce206
  55569cde_7638_9cfc_9dcd_34636d975ec3["applyLibSQLSnapshotsDiff()"]
  55569cde_7638_9cfc_9dcd_34636d975ec3 -->|calls| 5159c0a2_d33b_db96_9ad3_26954a8ce206
  5fbcc7ce_945a_7e2d_e12d_559fa5000971["warning()"]
  5159c0a2_d33b_db96_9ad3_26954a8ce206 -->|calls| 5fbcc7ce_945a_7e2d_e12d_559fa5000971
  style 5159c0a2_d33b_db96_9ad3_26954a8ce206 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/jsonStatements.ts lines 2435–2761

export const prepareSqliteAlterColumns = (
	tableName: string,
	schema: string,
	columns: AlteredColumn[],
	// TODO: remove?
	json2: CommonSquashedSchema,
): JsonAlterColumnStatement[] => {
	let statements: JsonAlterColumnStatement[] = [];
	let dropPkStatements: JsonAlterColumnDropPrimaryKeyStatement[] = [];
	let setPkStatements: JsonAlterColumnSetPrimaryKeyStatement[] = [];

	for (const column of columns) {
		const columnName = typeof column.name !== 'string' ? column.name.new : column.name;

		// I used any, because those fields are available only for mysql dialect
		// For other dialects it will become undefined, that is fine for json statements
		const columnType = json2.tables[tableName].columns[columnName].type;
		const columnDefault = json2.tables[tableName].columns[columnName].default;
		const columnOnUpdate = (json2.tables[tableName].columns[columnName] as any)
			.onUpdate;
		const columnNotNull = json2.tables[tableName].columns[columnName].notNull;
		const columnAutoIncrement = (
			json2.tables[tableName].columns[columnName] as any
		).autoincrement;
		const columnPk = (json2.tables[tableName].columns[columnName] as any)
			.primaryKey;

		const columnGenerated = json2.tables[tableName].columns[columnName].generated;

		const compositePk = json2.tables[tableName].compositePrimaryKeys[
			`${tableName}_${columnName}`
		];

		if (column.autoincrement?.type === 'added') {
			statements.push({
				type: 'alter_table_alter_column_set_autoincrement',
				tableName,
				columnName,
				schema,
				newDataType: columnType,
				columnDefault,
				columnOnUpdate,
				columnNotNull,
				columnAutoIncrement,
				columnPk,
			});
		}

		if (column.autoincrement?.type === 'changed') {
			const type = column.autoincrement.new
				? 'alter_table_alter_column_set_autoincrement'
				: 'alter_table_alter_column_drop_autoincrement';

			statements.push({
				type,
				tableName,
				columnName,
				schema,
				newDataType: columnType,
				columnDefault,
				columnOnUpdate,
				columnNotNull,
				columnAutoIncrement,
				columnPk,
			});
		}

		if (column.autoincrement?.type === 'deleted') {
			statements.push({
				type: 'alter_table_alter_column_drop_autoincrement',
				tableName,
				columnName,
				schema,
				newDataType: columnType,
				columnDefault,
				columnOnUpdate,
				columnNotNull,
				columnAutoIncrement,
				columnPk,
			});
		}

Domain

Subdomains

Calls

Frequently Asked Questions

What does prepareSqliteAlterColumns() do?
prepareSqliteAlterColumns() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/jsonStatements.ts.
Where is prepareSqliteAlterColumns() defined?
prepareSqliteAlterColumns() is defined in drizzle-kit/src/jsonStatements.ts at line 2435.
What does prepareSqliteAlterColumns() call?
prepareSqliteAlterColumns() calls 1 function(s): warning.
What calls prepareSqliteAlterColumns()?
prepareSqliteAlterColumns() is called by 2 function(s): applyLibSQLSnapshotsDiff, applySqliteSnapshotsDiff.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free