Not getting latest data from db on Vercel | Neondb (postgresql)
Answered
Naeemgg posted this in #help-forum
NaeemggOP
this is my route file
while hitting it from
import prisma from "@/prisma/client"
import { NextResponse } from "next/server"
export const GET = async()=>{
try {
data = await prisma.docs.findMany({})
return NextResponse.json(data,{status: 200})}
catch (error) {
console.log(error)
return NextResponse.json({msg:"Something went wrong"},{status:503})}}
while hitting it from
localhost
I'm getting all the latest data but from Vercel
I'm getting old data not the latest oneAnswered by risky
because layout config usually affects the nested page files, but im not sure about route files
33 Replies
Clown
Have you tried to actually test cache from
npm run build && npm start
??npm run dev isnt a good indicator of caching
NaeemggOP
yep
Clown
or performance
NaeemggOP
I tried with build and start as well
before pushing to vercel
Clown
check vercel datacache out and next docs guide on opting out of cache
NaeemggOP
But I'm fetching it like this
const dynamic = await fetch('https://api.vercel.app/products', {
cache: 'no-store',
});
risky
prob change revalidate settings or make the route dynamic cache
NaeemggOP
with
no-store
cache?
Clown
[opting out of data cache](https://nextjs.org/docs/app/building-your-application/data-fetching/fetching-caching-and-revalidating#opting-out-of-data-caching)
[Vercel Datacache](https://vercel.com/docs/infrastructure/data-cache)
[Vercel Datacache](https://vercel.com/docs/infrastructure/data-cache)
risky
i meant:
export const dynamic = 'force-dynamic'
// or
export const revalidate = 0 // can me greater then 0 if you want it to last longer
i was meaning that nextjs has fetch cache as well as page... you have to make suree both doesn't cache
NaeemggOP
yeah I was thinking of revalidate = 0
let me give revalidate a shot
NaeemggOP
revalidation 0 is not working
🥲
risky
can you send your full code of route
NaeemggOP
const [tableData,setTableData] = useState([])
useEffect(()=>{
const getData = async()=>{
const response = await fetch(`/api/get-all-data`,{cache:"no-store"})
const data = await response.json()
console.log("useEffect called")
console.log(data)
setTableData(data)
}
getData()
},[])
this is how I'm hitting from client component
And below is
get-all-data/route.ts
import prisma from "@/prisma/client"
import { NextResponse } from "next/server"
export const GET = async()=>{
try {
data = await prisma.docs.findMany({})
return NextResponse.json(data,{status: 200})}
catch (error) {
console.log(error)
return NextResponse.json({msg:"Something went wrong"},{status:503})}}
risky
i don't see your export of revalidation
NaeemggOP
I did it in layout.tsx
risky
ahh can you also try manually here
NaeemggOP
in route?
risky
ye
NaeemggOP
lemme give a min
risky
because layout config usually affects the nested page files, but im not sure about route files
Answer
NaeemggOP
building...
Hmmmm
IT WORKED
@risky
risky
yay!!!!
NaeemggOP