Skip to content

Commit d175e59

Browse files
onerandomdevvclaude
andcommitted
fix: handle DB connection failure gracefully in CI build
- db/index.ts: use placeholder connection string when DATABASE_URL is missing so neon() does not throw at module initialization - TeamSection: wrap DB query in try/catch returning [] on failure - generateStaticParams and sitemap already had try/catch (no changes) - Build now passes with no database credentials (simulates CI) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a8bec46 commit d175e59

2 files changed

Lines changed: 23 additions & 13 deletions

File tree

src/components/sections/TeamSection.tsx

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,27 @@ import { db, teamMembers } from "@/db";
55
import { getTeamPhotoUrl } from "@/lib/cloudinary";
66
import { ArrowRightIcon } from "@/components/ui/icons";
77

8+
async function getFounders() {
9+
try {
10+
return await db
11+
.select({
12+
id: teamMembers.id,
13+
name: teamMembers.name,
14+
role: teamMembers.role,
15+
photo_url: teamMembers.photo_url,
16+
order_index: teamMembers.order_index,
17+
})
18+
.from(teamMembers)
19+
.where(eq(teamMembers.is_active, true))
20+
.orderBy(asc(teamMembers.order_index))
21+
.limit(3);
22+
} catch {
23+
return [];
24+
}
25+
}
26+
827
export default async function TeamSection() {
9-
const members = await db
10-
.select({
11-
id: teamMembers.id,
12-
name: teamMembers.name,
13-
role: teamMembers.role,
14-
photo_url: teamMembers.photo_url,
15-
order_index: teamMembers.order_index,
16-
})
17-
.from(teamMembers)
18-
.where(eq(teamMembers.is_active, true))
19-
.orderBy(asc(teamMembers.order_index))
20-
.limit(3);
28+
const members = await getFounders();
2129

2230
const isDev = process.env.NODE_ENV === "development";
2331

src/db/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import { neon } from "@neondatabase/serverless";
22
import { drizzle } from "drizzle-orm/neon-http";
33
import * as schema from "@/db/schema";
44

5-
const sql = neon(process.env.DATABASE_URL!);
5+
const connectionString = process.env.DATABASE_URL;
6+
7+
const sql = neon(connectionString ?? "postgresql://placeholder:placeholder@localhost/placeholder");
68

79
export const db = drizzle(sql, { schema });
810

0 commit comments

Comments
 (0)