Home / Class/ MySqlCreateForeignKeyConvertor Class — drizzle-orm Architecture

MySqlCreateForeignKeyConvertor Class — drizzle-orm Architecture

Architecture documentation for the MySqlCreateForeignKeyConvertor class in sqlgenerator.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  1b121685_2750_0618_c906_df4ce68e5484["MySqlCreateForeignKeyConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  1b121685_2750_0618_c906_df4ce68e5484 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  74bb92b1_ea29_f2be_085d_b61df38ab306["can()"]
  1b121685_2750_0618_c906_df4ce68e5484 -->|method| 74bb92b1_ea29_f2be_085d_b61df38ab306
  eed92d66_035e_1f10_3279_b5079cee95eb["convert()"]
  1b121685_2750_0618_c906_df4ce68e5484 -->|method| eed92d66_035e_1f10_3279_b5079cee95eb

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 3402–3424

class MySqlCreateForeignKeyConvertor extends Convertor {
	can(statement: JsonStatement, dialect: Dialect): boolean {
		return statement.type === 'create_reference' && dialect === 'mysql';
	}

	convert(statement: JsonCreateReferenceStatement): string {
		const {
			name,
			tableFrom,
			tableTo,
			columnsFrom,
			columnsTo,
			onDelete,
			onUpdate,
		} = MySqlSquasher.unsquashFK(statement.data);
		const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : '';
		const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : '';
		const fromColumnsString = columnsFrom.map((it) => `\`${it}\``).join(',');
		const toColumnsString = columnsTo.map((it) => `\`${it}\``).join(',');

		return `ALTER TABLE \`${tableFrom}\` ADD CONSTRAINT \`${name}\` FOREIGN KEY (${fromColumnsString}) REFERENCES \`${tableTo}\`(${toColumnsString})${onDeleteStatement}${onUpdateStatement};`;
	}
}

Domain

Frequently Asked Questions

What is the MySqlCreateForeignKeyConvertor class?
MySqlCreateForeignKeyConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is MySqlCreateForeignKeyConvertor defined?
MySqlCreateForeignKeyConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 3402.

Analyze Your Own Codebase

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

Try Supermodel Free