【问题标题】:prisma2 set length and column type in prisma schemaprisma2 在 prisma 模式中设置长度和列类型
【发布时间】:2020-11-14 15:41:21
【问题描述】:
如何将字符串类型的字符串(varchar)长度设置为 50,并在 prisma 模式中定义一个列为 TEXT,对于用户表,我希望 name 为 varchar(50) 和 bio 为文本列。
我通过 prisma migrate save and up 创建我的表。
model User {
id Int @default(autoincrement()) @id
email String @unique
password String
name String ***** varchar 50****
bio String *****TEXT ??
}
【问题讨论】:
标签:
prisma
prisma-graphql
prisma2
【解决方案1】:
最近在v2.17.0 中添加了以下功能。您可以使用@db. 在标量字段的属性中指定数据库类型,后跟 Prisma 指定的所需本机数据库类型属性。对于varchar,请对 PostgreSQL 使用以下内容。
model User {
id Int @default(autoincrement()) @id
email String @unique
password String
name String @db.VarChar(50)
}
更多数据库类型请参考Prisma Schema API docs。
【解决方案2】:
@Griffin 是正确的。此外,您的 bio 字段可以保持原样。 Prisma 默认将 String 类型设置为本机数据库 text 类型(仅限 PostgreSQL 和 SQLite)。无论数据库如何,您也可以显式设置它:
model User {
id Int @default(autoincrement()) @id
email String @unique
password String
name String @db.VarChar(50)
bio String @db.Text
}