add cache to prisma

This commit is contained in:
2023-12-14 17:42:13 +01:00
parent 268157b249
commit 62f4215c0c
11 changed files with 36 additions and 8 deletions

View File

@@ -7,7 +7,7 @@
"dev": "nuxt dev --host",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "prisma generate && nuxt prepare",
"postinstall": "prisma generate --no-engine && nuxt prepare",
"lint": "eslint .",
"lint:fix": "eslint . --fix"
},
@@ -16,7 +16,8 @@
"@nuxt/image": "1.1.0",
"@nuxt/ui": "2.11.1",
"@pinia/nuxt": "0.5.1",
"@prisma/client": "5.7.0",
"@prisma/client": "^5.7.0",
"@prisma/extension-accelerate": "^0.6.2",
"@vercel/analytics": "1.1.1",
"@vueuse/motion": "2.0.0",
"pinia": "2.1.7",

View File

@@ -4,7 +4,8 @@ generator client {
datasource db {
provider = "mysql"
url = env("PRISMA_URL")
url = env("DATABASE_URL")
directUrl = env("DIRECTE_DATABASE_URL")
relationMode = "prisma"
}

View File

@@ -1,6 +1,6 @@
export default defineEventHandler(async () => {
return await usePrisma().announcement.findFirst({
orderBy: {
ororderBy: {
createdAt: 'desc',
},
})

View File

@@ -5,6 +5,9 @@ const PostSchema = z.object({ slug: z.string() }).parse
export default defineEventHandler(async (event) => {
const { slug } = await readValidatedBody(event, PostSchema)
return await usePrisma().post.upsert({
cacheStrategy: {
swr: 60 * 5,
},
where: {
slug,
},

View File

@@ -26,6 +26,9 @@ export default defineEventHandler(async (event) => {
}
return await prisma.bookmark.findMany({
cacheStrategy: {
ttl: 60 * 3,
},
where: whereClause,
orderBy: {
name: 'asc',

View File

@@ -3,6 +3,9 @@ import type { CategoryType } from '@prisma/client'
export default defineEventHandler(async (event) => {
const { type } = getQuery<{ type: CategoryType }>(event)
return await usePrisma().category.findMany({
cacheStrategy: {
ttl: 60 * 3,
},
where: {
type,
},

View File

@@ -3,6 +3,9 @@ export default defineEventHandler(async () => {
orderBy: {
createdAt: 'desc',
},
cacheStrategy: {
ttl: 60 * 60 * 24,
},
})
let enabled = true
if (process.env.NODE_ENV === 'development') {

View File

@@ -1,5 +1,9 @@
export default defineEventHandler(async () => {
return await usePrisma().guestbookMessage.findMany({
cacheStrategy: {
ttl: 60 * 60,
swr: 60 * 5,
},
orderBy: {
updatedAt: 'desc',
},

View File

@@ -26,6 +26,9 @@ export default defineEventHandler(async (event) => {
}
return await prisma.talent.findMany({
cacheStrategy: {
ttl: 60 * 3,
},
where: whereClause,
orderBy: {
name: 'asc',

View File

@@ -1,12 +1,14 @@
import { PrismaClient } from '@prisma/client'
import { PrismaClient } from '@prisma/client/edge'
import { PrismaClientExtends } from '@prisma/client/scripts/default-index'
import { withAccelerate } from '@prisma/extension-accelerate'
let prisma: PrismaClient | undefined
let prisma: any
export function usePrisma() {
if (!prisma) {
prisma = new PrismaClient({
log: ['warn', 'info', 'error'],
})
}).$extends(withAccelerate())
}
return prisma

View File

@@ -1822,7 +1822,7 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
"@prisma/client@5.7.0":
"@prisma/client@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.7.0.tgz#c29dd9a16e100902eb2d2443d90fee2482d2aeac"
integrity sha512-cZmglCrfNbYpzUtz7HscVHl38e9CrUs31nrVoGUK1nIPXGgt8hT4jj2s657UXcNdQ/jBUxDgGmHyu2Nyrq1txg==
@@ -1847,6 +1847,11 @@
"@prisma/fetch-engine" "5.7.0"
"@prisma/get-platform" "5.7.0"
"@prisma/extension-accelerate@^0.6.2":
version "0.6.2"
resolved "https://registry.yarnpkg.com/@prisma/extension-accelerate/-/extension-accelerate-0.6.2.tgz#31e0fabb0b0dc318dca9b4087e89bf07219a4866"
integrity sha512-KIBVPeWt8qaSg7wQ+TXmCVeUDoW75whtXcdS9dbHxRoO2OWFH5I9+qbkHBhx5Wj/h1wQpS8usuxGnsZqiBjUpQ==
"@prisma/fetch-engine@5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.7.0.tgz#7d2795828b692b02707e7ab6876f6227a68fc309"