From 8bd40687c04b6a49ebb9a7d8d090332e15d77033 Mon Sep 17 00:00:00 2001 From: Cody Pinkston Date: Wed, 29 Apr 2026 23:35:40 -0500 Subject: [PATCH] Fix: DataInitializer re-runs on every restart crashing the app DataInitializer had no guard against running on subsequent container restarts. On redeployment, duplicate inserts hit the unique constraint on admin/student emails, throwing DataIntegrityViolationException and preventing the app from starting -- causing Azure to keep serving the old container. Added an early-return check so seeding only happens once on a fresh database. Co-Authored-By: Claude Sonnet 4.6 --- .../java/com/tcu/projectpulse/config/DataInitializer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/src/main/java/com/tcu/projectpulse/config/DataInitializer.java b/backend/src/main/java/com/tcu/projectpulse/config/DataInitializer.java index 5a785b5..bda89ee 100644 --- a/backend/src/main/java/com/tcu/projectpulse/config/DataInitializer.java +++ b/backend/src/main/java/com/tcu/projectpulse/config/DataInitializer.java @@ -65,6 +65,11 @@ public DataInitializer(SectionRepository sectionRepository, @Transactional public void run(ApplicationArguments args) { + if (adminRepository.count() > 0) { + System.out.println("=== DataInitializer: seed data already present, skipping ==="); + return; + } + // Use the current Monday as an anchor so seed data is always "this semester" LocalDate thisMonday = LocalDate.now().with(DayOfWeek.MONDAY);