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

createTableFKs() — drizzle-orm Function Reference

Architecture documentation for the createTableFKs() function in introspect-pg.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  da670fa1_7aef_55a6_f6b5_d56dded0eade["createTableFKs()"]
  71516551_23e3_bf30_27c9_000fb046ef71["introspect-pg.ts"]
  da670fa1_7aef_55a6_f6b5_d56dded0eade -->|defined in| 71516551_23e3_bf30_27c9_000fb046ef71
  ae4bc88a_1e24_ce7b_ea80_728e39b829ef["schemaToTypeScript()"]
  ae4bc88a_1e24_ce7b_ea80_728e39b829ef -->|calls| da670fa1_7aef_55a6_f6b5_d56dded0eade
  9033c8cf_1cd9_c420_437a_01e7a84a9869["paramNameFor()"]
  da670fa1_7aef_55a6_f6b5_d56dded0eade -->|calls| 9033c8cf_1cd9_c420_437a_01e7a84a9869
  968467a1_c4a6_11cb_5fbc_8854071f9af4["withCasing()"]
  da670fa1_7aef_55a6_f6b5_d56dded0eade -->|calls| 968467a1_c4a6_11cb_5fbc_8854071f9af4
  style da670fa1_7aef_55a6_f6b5_d56dded0eade fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/introspect-pg.ts lines 1343–1369

const createTableFKs = (fks: ForeignKey[], schemas: Record<string, string>, casing: Casing): string => {
	let statement = '';

	fks.forEach((it) => {
		const tableSchema = schemas[it.schemaTo || ''];
		const paramName = paramNameFor(it.tableTo, tableSchema);

		const isSelf = it.tableTo === it.tableFrom;
		const tableTo = isSelf ? 'table' : `${withCasing(paramName, casing)}`;
		statement += `\n\t`;
		statement += `foreignKey({\n`;
		statement += `\t\t\tcolumns: [${it.columnsFrom.map((i) => `table.${withCasing(i, casing)}`).join(', ')}],\n`;
		statement += `\t\t\tforeignColumns: [${
			it.columnsTo.map((i) => `${tableTo}.${withCasing(i, casing)}`).join(', ')
		}],\n`;
		statement += `\t\t\tname: "${it.name}"\n`;
		statement += `\t\t})`;

		statement += it.onUpdate && it.onUpdate !== 'no action' ? `.onUpdate("${it.onUpdate}")` : '';

		statement += it.onDelete && it.onDelete !== 'no action' ? `.onDelete("${it.onDelete}")` : '';

		statement += `,`;
	});

	return statement;
};

Domain

Subdomains

Frequently Asked Questions

What does createTableFKs() do?
createTableFKs() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/introspect-pg.ts.
Where is createTableFKs() defined?
createTableFKs() is defined in drizzle-kit/src/introspect-pg.ts at line 1343.
What does createTableFKs() call?
createTableFKs() calls 2 function(s): paramNameFor, withCasing.
What calls createTableFKs()?
createTableFKs() is called by 1 function(s): schemaToTypeScript.

Analyze Your Own Codebase

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

Try Supermodel Free