prisma2 在 prisma 模式中设置长度和列类型

prisma2 set length and column type in prisma schema

我如何将字符串类型的字符串(varchar)长度设置为 50 并在 prisma 模式中定义一个列为 TEXT,对于用户 table 我希望 name 为 varchar(50) 和 bio 为文本栏。 我正在通过 prisma migrate save and up 创建我的 tables。

model User {

  id        Int      @default(autoincrement()) @id
  email     String   @unique
  password  String
  name      String   ***** varchar 50****
  bio       String  *****TEXT ??

}

最近在 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

@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
}