SQL 转 Prisma:从 DDL 脚本生成模型
下面不是示意图:这是生成器对左边脚本的真实输出。在编辑器里点「Codegen → Prisma」得到的就是同一份代码。
输入schema.sql
CREATE TABLE users (
id BIGINT NOT NULL PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
full_name VARCHAR(120),
is_active BOOLEAN NOT NULL,
created_at TIMESTAMP NOT NULL
);
CREATE TABLE orders (
id BIGINT NOT NULL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id),
total DECIMAL(12,2) NOT NULL,
note TEXT,
placed_at TIMESTAMP NOT NULL
);输出schema.prisma
model Users {
id BigInt @id
email String @db.VarChar(255) @unique
fullName String? @db.VarChar(120) @map("full_name")
isActive Boolean @map("is_active")
createdAt DateTime @map("created_at")
orders Orders[]
@@map("users")
}
model Orders {
id BigInt @id
userId BigInt @map("user_id")
total Decimal @db.Decimal(12, 2)
note String? @db.Text
placedAt DateTime @map("placed_at")
users Users @relation(fields: [userId], references: [id])
@@map("orders")
}打开编辑器
脚本留在浏览器里:解析和生成都在您的机器上进行,不会上传到服务器。
类型如何对应
| 在 SQL 里 | 在模型里 |
|---|---|
BIGINT | BigInt |
VARCHAR(255) | String @db.VarChar(255) |
BOOLEAN | Boolean |
TIMESTAMP | DateTime |
DECIMAL(12,2) | Decimal @db.Decimal(12, 2) |
TEXT | String? @db.Text |
- 可空字段
String?- 列名
@map("full_name")- 关系
@relation(fields: [userId], references: [id])