prisma2 在 prisma 模式中设置长度和列类型
Posted
技术标签:
【中文标题】prisma2 在 prisma 模式中设置长度和列类型【英文标题】:prisma2 set length and column type in prisma schema 【发布时间】: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 ??
【问题讨论】:
【参考方案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
【讨论】:
以上是关于prisma2 在 prisma 模式中设置长度和列类型的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 prisma 2 或 3 和 nexus 模式生成同时生成生成的 crud 和“ondelete 级联”
prisma2 migrate 错误:数据库中的迁移比本地多
prisma2:如何通过 prisma.user.findMany() 中的非必填字段进行过滤?