Loading...
Loading...
Replace mock data with real database queries using Prisma ORM and PostgreSQL.
Fabrk templates use mock data by default. This guide shows how to replace mocks with real database queries using Prisma.
[WHAT YOU'LL INTEGRATE]:
1$# Check Prisma is installed2$npm list @prisma/client34$# Verify schema exists5$cat prisma/schema.prisma67$# Run initial migration8$npx prisma db push
Add models to prisma/schema.prisma:
1// Example: Analytics Dashboard data2model Metric {3 id String @id @default(cuid())4 userId String5 name String6 value Float7 change Float8 icon String9 createdAt DateTime @default(now())10 user User @relation(fields: [userId], references: [id])11}1213model Activity {14 id String @id @default(cuid())15 userId String16 type String17 description String18 timestamp DateTime @default(now())19 user User @relation(fields: [userId], references: [id])20}
Before (Mock Data):
1// Mock data in component2const metrics = [3 { name: "Revenue", value: 45231, change: 12.5 },4 { name: "Users", value: 2350, change: 8.1 },5];
After (Prisma):
1import { prisma } from "@/lib/db";23export default async function AnalyticsPage() {4 const session = await auth();56 // Fetch real data from database7 const metrics = await prisma.metric.findMany({8 where: { userId: session.user.id },9 orderBy: { createdAt: 'desc' },10 take: 4,11 });1213 return <MetricCards metrics={metrics} />;14}
Fetch user-specific data:
1const data = await prisma.item.findMany({2 where: { userId: session.user.id },3});
Create new record:
1await prisma.item.create({2 data: {3 name: "New Item",4 userId: session.user.id,5 },6});
Update with validation:
1await prisma.item.update({2 where: {3 id: itemId,4 userId: session.user.id, // Ensure ownership5 },6 data: { name: newName },7});
[ERROR]: PrismaClient is not configured
Fix: Run `npx prisma generate`
[ERROR]: Too many database connections
Fix: Use the Prisma singleton pattern in `lib/db.ts`