diff --git a/server/seed.ts b/server/seed.ts index aa8033a..aa004ca 100644 --- a/server/seed.ts +++ b/server/seed.ts @@ -193,9 +193,18 @@ const seedArticles = [ ]; export async function seedDatabase() { + const validSlugs = new Set(seedArticles.map((a) => a.slug)); const existing = await storage.getArticles(); const existingSlugs = new Set(existing.map((a) => a.slug)); + const toDelete = existing.filter((a) => !validSlugs.has(a.slug)); + if (toDelete.length > 0) { + for (const article of toDelete) { + await db.execute(sql`DELETE FROM articles WHERE id = ${article.id}`); + } + console.log("Cleanup: removed " + toDelete.length + " articles not in seed list."); + } + let added = 0; for (const article of seedArticles) { if (existingSlugs.has(article.slug)) continue;