From dac7e60a4d836efd781e2750879fb7d8c4729335 Mon Sep 17 00:00:00 2001 From: Folx Ops Date: Sat, 13 Jun 2026 10:35:41 +0000 Subject: [PATCH] Fix: seed ne sme sesuti serverja ob duplicate slug (try/catch + guard) --- server/routes.ts | 6 ++++- server/seed.ts | 58 +++++++++++++++++++++++++++++++++++------------- 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/server/routes.ts b/server/routes.ts index 97dd706..85c7f80 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -57,7 +57,11 @@ export async function registerRoutes( httpServer: Server, app: Express ): Promise { - await seedDatabase(); + try { + await seedDatabase(); + } catch (err: any) { + console.error("[seed] seedDatabase failed (server continues):", err?.message); + } startDailyScheduler(); diff --git a/server/seed.ts b/server/seed.ts index 8118e10..bebc433 100644 --- a/server/seed.ts +++ b/server/seed.ts @@ -288,24 +288,50 @@ export async function seedDatabase() { continue; } - await storage.createArticle({ - title: article.title, - slug: article.slug, - excerpt: article.excerpt, - content: article.content, - coverImage: article.coverImage, - category: article.category, - author: article.author, - featured: article.featured, - }); + try { + await storage.createArticle({ + title: article.title, + slug: article.slug, + excerpt: article.excerpt, + content: article.content, + coverImage: article.coverImage, + category: article.category, + author: article.author, + featured: article.featured, + }); - if (article.publishedAt) { - await db.execute( - sql`UPDATE articles SET published_at = ${article.publishedAt} WHERE slug = ${article.slug}` - ); + if (article.publishedAt) { + await db.execute( + sql`UPDATE articles SET published_at = ${article.publishedAt} WHERE slug = ${article.slug}` + ); + } + newArticles.push(article); + added++; + } catch (err: any) { + // Slug ze obstaja (npr. paralelni deploy/generator je clanek vstavil + // med branjem in pisanjem) -> ne sesuj serverja, samo posodobi. + if (String(err?.message || "").includes("articles_slug_unique")) { + await db.execute( + sql`UPDATE articles SET + title = ${article.title}, + excerpt = ${article.excerpt}, + content = ${article.content}, + cover_image = ${article.coverImage}, + category = ${article.category}, + author = ${article.author}, + featured = ${article.featured} + WHERE slug = ${article.slug}` + ); + if (article.publishedAt) { + await db.execute( + sql`UPDATE articles SET published_at = ${article.publishedAt} WHERE slug = ${article.slug}` + ); + } + updated++; + } else { + console.error("[seed] createArticle failed for " + article.slug + ": " + err?.message); + } } - newArticles.push(article); - added++; } if (added > 0) {