Fix settings: catch DB errors at build time, return defaults
getSettings() and getSetting() now fall back to defaults when the database is unavailable (e.g., during Docker image build). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -44,17 +44,26 @@ export type Settings = Record<SettingsKey, string>;
|
|||||||
// ── Getters ───────────────────────────────────────────────────────────────────
|
// ── Getters ───────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
export async function getSettings(): Promise<Settings> {
|
export async function getSettings(): Promise<Settings> {
|
||||||
|
try {
|
||||||
const rows = await prisma.settings.findMany();
|
const rows = await prisma.settings.findMany();
|
||||||
const stored: Record<string, string> = {};
|
const stored: Record<string, string> = {};
|
||||||
for (const row of rows) stored[row.key] = row.value;
|
for (const row of rows) stored[row.key] = row.value;
|
||||||
return Object.fromEntries(
|
return Object.fromEntries(
|
||||||
Object.entries(SETTINGS_DEFAULTS).map(([k, v]) => [k, stored[k] ?? v])
|
Object.entries(SETTINGS_DEFAULTS).map(([k, v]) => [k, stored[k] ?? v])
|
||||||
) as Settings;
|
) as Settings;
|
||||||
|
} catch {
|
||||||
|
// DB unavailable at build time — return defaults
|
||||||
|
return { ...SETTINGS_DEFAULTS } as Settings;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getSetting(key: SettingsKey): Promise<string> {
|
export async function getSetting(key: SettingsKey): Promise<string> {
|
||||||
|
try {
|
||||||
const row = await prisma.settings.findUnique({ where: { key } });
|
const row = await prisma.settings.findUnique({ where: { key } });
|
||||||
return row?.value ?? SETTINGS_DEFAULTS[key];
|
return row?.value ?? SETTINGS_DEFAULTS[key];
|
||||||
|
} catch {
|
||||||
|
return SETTINGS_DEFAULTS[key];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Convenience helpers ───────────────────────────────────────────────────────
|
// ── Convenience helpers ───────────────────────────────────────────────────────
|
||||||
|
|||||||
Reference in New Issue
Block a user