pgSchema.ts — drizzle-orm Source File
Architecture documentation for pgSchema.ts, a typescript file in the drizzle-orm codebase. 2 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 9ebc8c21_39f3_837f_8b4e_960fef4d761e["pgSchema.ts"] 690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"] 9ebc8c21_39f3_837f_8b4e_960fef4d761e --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031 53497908_16e7_977d_e97d_7414884a88a6["pg-core"] 9ebc8c21_39f3_837f_8b4e_960fef4d761e --> 53497908_16e7_977d_e97d_7414884a88a6 7f388a88_6b7c_c74d_b54a_3201ca0e49d3["cyclicTables.test.ts"] 7f388a88_6b7c_c74d_b54a_3201ca0e49d3 --> 9ebc8c21_39f3_837f_8b4e_960fef4d761e style 9ebc8c21_39f3_837f_8b4e_960fef4d761e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { relations } from 'drizzle-orm';
import type { AnyPgColumn } from 'drizzle-orm/pg-core';
import { foreignKey, integer, pgTable, serial, text, varchar } from 'drizzle-orm/pg-core';
// MODEL
export const modelTable = pgTable(
'model',
{
id: serial().primaryKey(),
name: varchar().notNull(),
defaultImageId: integer(),
},
(t) => [
foreignKey({
columns: [t.defaultImageId],
foreignColumns: [modelImageTable.id],
}),
],
);
export const modelRelations = relations(modelTable, ({ one, many }) => ({
images: many(modelImageTable),
defaultImage: one(modelImageTable, {
fields: [modelTable.defaultImageId],
references: [modelImageTable.id],
}),
}));
// MODEL IMAGE
export const modelImageTable = pgTable(
'model_image',
{
id: serial().primaryKey(),
url: varchar().notNull(),
caption: varchar(),
modelId: integer()
.notNull()
.references((): AnyPgColumn => modelTable.id),
},
);
export const modelImageRelations = relations(modelImageTable, ({ one }) => ({
model: one(modelTable, {
fields: [modelImageTable.modelId],
references: [modelTable.id],
}),
}));
// 3 tables case
export const modelTable1 = pgTable(
'model1',
{
id: serial().primaryKey(),
name: varchar().notNull(),
userId: integer()
.references(() => user.id),
defaultImageId: integer(),
},
(t) => [
foreignKey({
columns: [t.defaultImageId],
foreignColumns: [modelImageTable1.id],
}),
],
);
export const modelImageTable1 = pgTable(
'model_image1',
{
id: serial().primaryKey(),
url: varchar().notNull(),
caption: varchar(),
modelId: integer().notNull()
.references((): AnyPgColumn => modelTable1.id),
},
);
export const user = pgTable(
'user',
{
id: serial().primaryKey(),
name: text(),
invitedBy: integer().references((): AnyPgColumn => user.id),
imageId: integer()
.notNull()
.references((): AnyPgColumn => modelImageTable1.id),
},
);
Domain
Subdomains
Dependencies
- drizzle-orm
- pg-core
Source
Frequently Asked Questions
What does pgSchema.ts do?
pgSchema.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, DatabaseDrivers subdomain.
What functions are defined in pgSchema.ts?
pgSchema.ts defines 4 function(s): modelImageRelations, modelRelations, modelTable, modelTable1.
What does pgSchema.ts depend on?
pgSchema.ts imports 2 module(s): drizzle-orm, pg-core.
What files import pgSchema.ts?
pgSchema.ts is imported by 1 file(s): cyclicTables.test.ts.
Where is pgSchema.ts in the architecture?
pgSchema.ts is located at drizzle-seed/tests/pg/cyclicTables/pgSchema.ts (domain: DrizzleORM, subdomain: DatabaseDrivers, directory: drizzle-seed/tests/pg/cyclicTables).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free