Home / File/ tables.ts — drizzle-orm Source File

tables.ts — drizzle-orm Source File

Architecture documentation for tables.ts, a typescript file in the drizzle-orm codebase. 7 imports, 7 dependents.

File typescript DrizzleORM SQLDialects 7 imports 7 dependents 9 functions

Entity Profile

Dependency Diagram

graph LR
  87dcb46e_0d95_8341_e760_d59ef620c68d["tables.ts"]
  9a56da77_7540_380c_f8b9_d8bde4914940["db.ts"]
  87dcb46e_0d95_8341_e760_d59ef620c68d --> 9a56da77_7540_380c_f8b9_d8bde4914940
  3f58c8f4_b305_acb0_933a_0541231c5109["node:crypto"]
  87dcb46e_0d95_8341_e760_d59ef620c68d --> 3f58c8f4_b305_acb0_933a_0541231c5109
  25b05299_f48f_bceb_01ca_1343d330a8f7["utils.ts"]
  87dcb46e_0d95_8341_e760_d59ef620c68d --> 25b05299_f48f_bceb_01ca_1343d330a8f7
  5c46beaf_8b59_d2e3_def3_8af6daf1fccd["index.ts"]
  87dcb46e_0d95_8341_e760_d59ef620c68d --> 5c46beaf_8b59_d2e3_def3_8af6daf1fccd
  be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd["sql.ts"]
  87dcb46e_0d95_8341_e760_d59ef620c68d --> be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd
  c9460fa2_b68e_584b_2be3_a4db38ea6f7c["index.ts"]
  87dcb46e_0d95_8341_e760_d59ef620c68d --> c9460fa2_b68e_584b_2be3_a4db38ea6f7c
  977ee30e_abf0_475b_97c6_f9a4eb97a92f["view.ts"]
  87dcb46e_0d95_8341_e760_d59ef620c68d --> 977ee30e_abf0_475b_97c6_f9a4eb97a92f
  17a58b86_c6ea_9812_f57c_197b3715509b["aliased-table.ts"]
  17a58b86_c6ea_9812_f57c_197b3715509b --> 87dcb46e_0d95_8341_e760_d59ef620c68d
  91cfe141_d94d_725f_35e0_6a96a9f02128["delete.ts"]
  91cfe141_d94d_725f_35e0_6a96a9f02128 --> 87dcb46e_0d95_8341_e760_d59ef620c68d
  40aaa4f8_fa63_89fa_80a7_f806d7c20c5d["insert.ts"]
  40aaa4f8_fa63_89fa_80a7_f806d7c20c5d --> 87dcb46e_0d95_8341_e760_d59ef620c68d
  0de803b9_c75e_e94e_019a_0c694228f60e["other.ts"]
  0de803b9_c75e_e94e_019a_0c694228f60e --> 87dcb46e_0d95_8341_e760_d59ef620c68d
  0ff94ef8_b176_7009_9517_327e186dd2d1["select.ts"]
  0ff94ef8_b176_7009_9517_327e186dd2d1 --> 87dcb46e_0d95_8341_e760_d59ef620c68d
  20d20271_669e_bb2d_537b_ef209a0ba63d["set-operators.ts"]
  20d20271_669e_bb2d_537b_ef209a0ba63d --> 87dcb46e_0d95_8341_e760_d59ef620c68d
  afc610b8_1520_83da_fa4c_c92e99605850["update.ts"]
  afc610b8_1520_83da_fa4c_c92e99605850 --> 87dcb46e_0d95_8341_e760_d59ef620c68d
  style 87dcb46e_0d95_8341_e760_d59ef620c68d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import * as crypto from 'node:crypto';
import type { Equal } from 'type-tests/utils.ts';
import { Expect } from 'type-tests/utils.ts';
import { eq, gt } from '~/sql/expressions/index.ts';
import { sql } from '~/sql/sql.ts';
import {
	alias,
	blob,
	check,
	customType,
	foreignKey,
	index,
	integer,
	numeric,
	primaryKey,
	real,
	type SQLiteColumn,
	sqliteTable,
	text,
	uniqueIndex,
} from '~/sqlite-core/index.ts';
import { sqliteView, type SQLiteViewWithSelection } from '~/sqlite-core/view.ts';
import { db } from './db.ts';

export const users = sqliteTable(
	'users_table',
	{
		id: integer('id').primaryKey({ autoIncrement: true }),
		homeCity: integer('home_city')
			.notNull()
			.references(() => cities.id),
		currentCity: integer('current_city').references(() => cities.id),
		serialNullable: integer('serial1'),
		serialNotNull: integer('serial2').notNull(),
		class: text('class', { enum: ['A', 'C'] }).notNull(),
		subClass: text('sub_class', { enum: ['B', 'D'] }),
		name: text('name'),
		age1: integer('age1').notNull(),
		createdAt: integer('created_at', { mode: 'timestamp' }).notNull().defaultNow(),
		enumCol: text('enum_col', { enum: ['a', 'b', 'c'] }).notNull(),
	},
	(users) => ({
		usersAge1Idx: uniqueIndex('usersAge1Idx').on(users.class),
		usersAge2Idx: index('usersAge2Idx').on(users.class),
		uniqueClass: uniqueIndex('uniqueClass')
			.on(users.class, users.subClass)
			.where(
				sql`${users.class} is not null`,
			),
		uniqueClassEvenBetterThanPrisma: uniqueIndex('uniqueClass')
			.on(users.class, users.subClass)
			.where(
				sql`${users.class} is not null`,
			),
		legalAge: check('legalAge', sql`${users.age1} > 18`),
		usersClassFK: foreignKey(() => ({ columns: [users.subClass], foreignColumns: [classes.subClass] })),
		usersClassComplexFK: foreignKey(() => ({
			columns: [users.class, users.subClass],
			foreignColumns: [classes.class, classes.subClass],
		})),
// ... (525 more lines)

Domain

Subdomains

Dependencies

  • db.ts
  • index.ts
  • index.ts
  • node:crypto
  • sql.ts
  • utils.ts
  • view.ts

Frequently Asked Questions

What does tables.ts do?
tables.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, SQLDialects subdomain.
What functions are defined in tables.ts?
tables.ts defines 9 function(s): cities, customOptionalConfig.dataType, customOptionalConfig.fromDriver, customOptionalConfig.toDriver, customRequiredConfig.dataType, customRequiredConfig.fromDriver, customRequiredConfig.toDriver, newYorkers, users.
What does tables.ts depend on?
tables.ts imports 7 module(s): db.ts, index.ts, index.ts, node:crypto, sql.ts, utils.ts, view.ts.
What files import tables.ts?
tables.ts is imported by 7 file(s): aliased-table.ts, delete.ts, insert.ts, other.ts, select.ts, set-operators.ts, update.ts.
Where is tables.ts in the architecture?
tables.ts is located at drizzle-orm/type-tests/sqlite/tables.ts (domain: DrizzleORM, subdomain: SQLDialects, directory: drizzle-orm/type-tests/sqlite).

Analyze Your Own Codebase

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

Try Supermodel Free