From 55a72ba55fd4548899543d4a180e6959acc14fc1 Mon Sep 17 00:00:00 2001 From: Robert van Diest Date: Wed, 25 Mar 2026 20:02:28 +0100 Subject: [PATCH] Don't reseed on non empty database --- .../Persistence/Seeding/DatabaseSeeder.cs | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/backend/src/Randall.Infrastructure/Persistence/Seeding/DatabaseSeeder.cs b/src/backend/src/Randall.Infrastructure/Persistence/Seeding/DatabaseSeeder.cs index 0c17dde..82fac1f 100644 --- a/src/backend/src/Randall.Infrastructure/Persistence/Seeding/DatabaseSeeder.cs +++ b/src/backend/src/Randall.Infrastructure/Persistence/Seeding/DatabaseSeeder.cs @@ -22,24 +22,16 @@ public static class DatabaseSeeder { await context.Database.MigrateAsync(); - // Seed workplaces - var existing = await context.Workplaces.ToListAsync(); - var expectedSet = ExpectedWorkplaces.Select(w => w.Name + w.Location).ToHashSet(); - var existingSet = existing.Select(w => w.Name + w.Location).ToHashSet(); - - if (!expectedSet.SetEquals(existingSet)) + // Seed workplaces only if none exist yet + if (!await context.Workplaces.AnyAsync()) { - context.Workplaces.RemoveRange(existing); - await context.SaveChangesAsync(); - var workplaces = ExpectedWorkplaces.Select(w => new Workplace(w.Name, w.Location)); context.Workplaces.AddRange(workplaces); await context.SaveChangesAsync(); } - // Seed admin user - var adminExists = await context.Users.AnyAsync(u => u.Email == AdminEmail); - if (!adminExists) + // Seed admin user only if no users exist yet + if (!await context.Users.AnyAsync()) { var hash = passwordHasher.Hash(AdminPassword); var admin = User.Create(AdminEmail, "Admin", hash, isAdmin: true).Value!;