![](/img/trans.png)
[英]Why is my schema.prisma not automatically adding '@relation' when autosaving?
[英]"Property does not exist" when I want to use model added in Prisma.schema
我正在使用 NextJS Framework 和 Prisma 進行 ReactJS 項目,以管理與數據庫的連接和查詢。
在我的本地項目中,找到了支持model,當我在我的 API 中使用它並構建我的項目時,一切正常。
但是當我在生產服務器 (Plesk) 上推送我的項目時,構建顯示這個 typescript 錯誤,因為它沒有找到支持model:
./src/pages/api/support/index.ts:27:26
Type error: Property 'support' does not exist on type 'PrismaClient<PrismaClientOptions, never, RejectOnNotFound | RejectPerOperation | undefined>'.
路徑./src/pages/api/support/index.ts
是我想使用支持的地方 model
我的prisma.schema
:
datasource db {
provider = "mysql"
url = env("DATABASE_CONNECTION")
}
generator client {
provider = "prisma-client-js"
}
model User {
id Int @id @unique @default(autoincrement())
gender String?
firstName String
lastName String
email String @unique
phone String
birthday DateTime?
income Float?
pincode Int?
points Float?
token String @db.Text
ipAddress String
kyc Kyc[]
createdAt DateTime @default(now())
updatedAt DateTime?
isValidated Boolean @default(false)
roleId Int
role Role @relation(fields: [roleId], references: [id])
Alerts Alerts[]
Support Support[]
}
model Kyc {
id Int @id @unique @default(autoincrement())
name String
validated Boolean @default(false)
path String
createdAt DateTime @default(now())
updatedAt DateTime? @updatedAt
user User @relation(fields: [userId], references: [id])
userId Int
}
model Alerts {
id Int @id @unique @default(autoincrement())
type TYPE @default(NOBLOCKED)
message String @db.Text
transferId Int @unique
fromUserId Int
read Boolean @default(false)
createdAt DateTime @default(now())
user User @relation(fields: [fromUserId], references: [id])
}
model Role {
id Int @id @unique @default(autoincrement())
name String
User User[]
}
model Support {
id Int @id @unique @default(autoincrement())
subject String
message String @db.Text
createdAt DateTime @default(now())
userId Int
user User @relation(fields: [userId], references: [id])
}
enum TYPE {
BLOCKED
NOBLOCKED
}
不知道每次push最新的改動需要用prisma migrate dev
還是prisma migrate deploy
。
我嘗試了prisma generate和prisma migrate dev但仍然有同樣的錯誤。 我不得不重新啟動 VSCode,現在一切正常
我重新啟動了我的 Visual Studio 代碼,它開始正常工作。
我忘了等待
const user = prisma.user.findUnique({
where: {
userId: authorUserId
},
select: {
id: true
}
})
但應該是:
const user = **await** prisma.user.findUnique({
where: {
userId: authorUserId
},
select: {
id: true
}
})
筆記! 我只是指問題的標題,而不是內容。 當您不使用正確的節點版本時,也可能會引發此錯誤,例如將 nvm 與舊節點版本一起使用的情況。
使用prisma generate
命令,但模式仍被標記為紅色。 我必須重新啟動我的 web 風暴 IDE 才能修復它。
在 VSCode 中重啟 typescript 服務器CTRL + SHIFT + P
然后輸入: restart TS Server
就我而言,我創建了一個名為Post
的模式,但我調用了await prisma.posts
。 它應該被稱為await prisma.posts
。 確保你不做Typo 。 😅
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.