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

promptColumnsConflicts() — drizzle-orm Function Reference

Architecture documentation for the promptColumnsConflicts() function in migrate.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  92852bb1_43bb_8fbe_8998_29fab18c9f74["promptColumnsConflicts()"]
  b14d3855_8cce_38c9_8952_a9d014c2fb1b["migrate.ts"]
  92852bb1_43bb_8fbe_8998_29fab18c9f74 -->|defined in| b14d3855_8cce_38c9_8952_a9d014c2fb1b
  e30b893b_f65f_b356_a9de_630281e9c4d9["policyResolver()"]
  e30b893b_f65f_b356_a9de_630281e9c4d9 -->|calls| 92852bb1_43bb_8fbe_8998_29fab18c9f74
  3b2eccf9_35d1_b2cc_b116_520f2f3c5d92["columnsResolver()"]
  3b2eccf9_35d1_b2cc_b116_520f2f3c5d92 -->|calls| 92852bb1_43bb_8fbe_8998_29fab18c9f74
  b0ef3d06_896b_eefc_c410_dfb419673d70["error()"]
  92852bb1_43bb_8fbe_8998_29fab18c9f74 -->|calls| b0ef3d06_896b_eefc_c410_dfb419673d70
  9ede9a38_b1b5_ce9d_c690_714bf96b1a3e["isRenamePromptItem()"]
  92852bb1_43bb_8fbe_8998_29fab18c9f74 -->|calls| 9ede9a38_b1b5_ce9d_c690_714bf96b1a3e
  style 92852bb1_43bb_8fbe_8998_29fab18c9f74 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/cli/commands/migrate.ts lines 1066–1131

export const promptColumnsConflicts = async <T extends Named>(
	tableName: string,
	newColumns: T[],
	missingColumns: T[],
) => {
	if (newColumns.length === 0 || missingColumns.length === 0) {
		return { created: newColumns, renamed: [], deleted: missingColumns };
	}
	const result: { created: T[]; renamed: { from: T; to: T }[]; deleted: T[] } = {
		created: [],
		renamed: [],
		deleted: [],
	};

	let index = 0;
	let leftMissing = [...missingColumns];

	do {
		const created = newColumns[index];

		const renames: RenamePropmtItem<T>[] = leftMissing.map((it) => {
			return { from: it, to: created };
		});

		const promptData: (RenamePropmtItem<T> | T)[] = [created, ...renames];

		const { status, data } = await render(
			new ResolveColumnSelect<T>(tableName, created, promptData),
		);
		if (status === 'aborted') {
			console.error('ERROR');
			process.exit(1);
		}

		if (isRenamePromptItem(data)) {
			console.log(
				`${chalk.yellow('~')} ${data.from.name} › ${data.to.name} ${
					chalk.gray(
						'column will be renamed',
					)
				}`,
			);
			result.renamed.push(data);
			// this will make [item1, undefined, item2]
			delete leftMissing[leftMissing.indexOf(data.from)];
			// this will make [item1, item2]
			leftMissing = leftMissing.filter(Boolean);
		} else {
			console.log(
				`${chalk.green('+')} ${data.name} ${
					chalk.gray(
						'column will be created',
					)
				}`,
			);
			result.created.push(created);
		}
		index += 1;
	} while (index < newColumns.length);
	console.log(
		chalk.gray(`--- all columns conflicts in ${tableName} table resolved ---\n`),
	);

	result.deleted.push(...leftMissing);
	return result;
};

Domain

Subdomains

Frequently Asked Questions

What does promptColumnsConflicts() do?
promptColumnsConflicts() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/cli/commands/migrate.ts.
Where is promptColumnsConflicts() defined?
promptColumnsConflicts() is defined in drizzle-kit/src/cli/commands/migrate.ts at line 1066.
What does promptColumnsConflicts() call?
promptColumnsConflicts() calls 2 function(s): error, isRenamePromptItem.
What calls promptColumnsConflicts()?
promptColumnsConflicts() is called by 2 function(s): columnsResolver, policyResolver.

Analyze Your Own Codebase

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

Try Supermodel Free