postgresql Prisma生成的类型未更新

jecbmhm3  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(3)|浏览(214)

我使用Prisma作为一个ORM,不得不更改删除一些列并添加其他列。我已经用新列更新了数据库并重新创建了Prisma模式,但问题是,现在每次我尝试插入新条目时,我都会得到这个错误:
第一个月
“picture”是新列之一,“image”是已删除的列之一,似乎生成的类型没有正确更新,因为其中一个新列在那里(email_verified),但另一个(picture)不在。

type usersCreateInput {
  name?: String | Null
  email?: String | Null
  email_verified?: DateTime | Null
  image?: String | Null
  mentor?: Boolean | Null
  weekly_time?: Int | Null
  journey?: String | Null
  pronouns?: String | Null
  occupation?: String | Null
  description?: String | Null
  created_at?: DateTime
  updated_at?: DateTime
  skills?: usersCreateskillsInput | List<String>
  boards?: boardsCreateNestedOneWithoutUsersInput
}

字符串
这些正是我所做的步骤:
1.修改了Docker使用的init.sql文件
1.已基于新的init.sql重新创建数据库
1.删除现有的模式,然后npx prisma init
1.运行npx prisma db pullnpx prisma generate,根据已经存在的数据库重新创建模式,需要注意的是,我检查了模式,它是正确的:

model users {
  id             Int        @id @default(autoincrement())
  name           String?    @db.VarChar(255)
  email          String?    @unique(map: "email") @db.VarChar(255)
  email_verified Boolean?
  picture        String?
  mentor         Boolean?
  skills         String[]
  weekly_time    Int?
  journey        String?    @db.VarChar(255)
  pronouns       String?    @db.VarChar(255)
  occupation     String?
  description    String?    @db.VarChar(255)
  created_at     DateTime   @default(now()) @db.Timestamptz(6)
  updated_at     DateTime   @default(now()) @db.Timestamptz(6)
  boards         boards?
  sessions       sessions[]
}


有没有办法完全重置prisma?我也试过删除node_modules并重新安装所有东西,但没有解决。

x8goxv8g

x8goxv8g1#

如果您遇到问题,您认为TypeScript无法正常工作,您可以尝试按下Ctrl+Shift+P并键入>Restart TS server来重新启动TypeScipt语言服务器。请确保首先导航到.ts文件!
这样您就不必重新打开VSCode。

yhuiod9q

yhuiod9q2#

我遇到了同样的问题。解决方案是运行npm i命令删除当前的Prisma客户端(不需要删除node_modules),然后运行npx prisma generate重新创建一个新的Prisma客户端。
此后,我在尝试查询新列时仍然出错,但随后解决方案是关闭并重新打开编辑器,在我的情况下是VS Code。

8i9zcol2

8i9zcol23#

我遇到了一个可怕的ID-10-T错误,我的模型叫做Item,当我在一行的开头开始输入时,我依赖于typescript来帮助我

Prisma.ItemCrea...

字符串
Intellisense给了我什么。无论出于什么原因,我决定尝试这个。

let x: Prisma.ItemCrea... // there it is, pops right up!


尝试定义一个变量或使其成为函数的返回类型.然后它会显示在VSCode智能感知中。

相关问题