String
sql
Database provider (default: postgresql)
Example Output
Generated from the pet-store sample schema:
sql
// Generated by @sqldoc/templates/prisma -- DO NOT EDIT
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Adoption {
id Int @id @default(autoincrement())
pet_id Int
owner_id Int
adopted_at DateTime @default(now())
adoption_fee Decimal @default(0)
owner Owner @relation(fields: [owner_id], references: [id])
pet Pet @relation(fields: [pet_id], references: [id])
}
model AdoptionsAuditLog {
id BigInt @id @default(autoincrement())
table_name String
operation String
old_data Json?
new_data Json?
changed_at DateTime @default(now())
}
model Category {
id Int @id @default(autoincrement())
name String
description String?
pets Pet[]
}
model LegacyInventory {
id Int @id @default(autoincrement())
item_name String?
old_sku String?
quantity Int? @default(0)
}
model Location {
id Int @id @default(autoincrement())
name String
address String
city String
zip String?
reviews Review[]
}
model MedicalRecord {
id Int @id @default(autoincrement())
pet_id Int
visit_date DateTime @default("CURRENT_DATE")
diagnosis String
treatment String?
vet_name String?
pet Pet @relation(fields: [pet_id], references: [id])
}
model Owner {
id Int @id @default(autoincrement())
name String
email String @unique
phone String?
created_at DateTime? @default(now())
adoptions Adoption[]
}
model Pet {
id Int @id @default(autoincrement())
category_id Int?
name String
sku String @unique
price Decimal @default(0)
internal_notes String?
status String @default("available")
created_at DateTime? @default(now())
category Category? @relation(fields: [category_id], references: [id])
adoptions Adoption[]
medical_records MedicalRecord[]
}
model Review {
id Int @id @default(autoincrement())
pet_id Int
owner_id Int
rating Int
body String?
location_id Int?
created_at DateTime? @default(now())
location Location? @relation(fields: [location_id], references: [id])
}
model StaffAuditLog {
id BigInt @id @default(autoincrement())
table_name String
operation String
old_data Json?
new_data Json?
changed_at DateTime @default(now())
}Usage
Add to your sqldoc.config.ts:
typescript
export default {
dialect: 'postgres',
schema: ['./schema.sql'],
codegen: [
{
template: 'prisma',
output: './generated/schema.prisma',
config: {
// See configuration options below
},
},
],
}Then run:
bash
sqldoc codegen