summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-12-10 18:46:42 +0100
committerMarius Peter <dev@marius-peter.com>2025-12-10 18:46:42 +0100
commit6e350f8921a7979304d42e878ddc63aa9987bb7e (patch)
tree7dbbd73523a8a2e4cdfc0d7758f02bb03c5111d1
parent523fe267880d0eeb96b78fac4e5db4142a7db1dc (diff)
Ensure idempotency for the seeding of other domain entities.
-rw-r--r--db/seed.rkt14
1 files changed, 8 insertions, 6 deletions
diff --git a/db/seed.rkt b/db/seed.rkt
index 8500a4b..3c3f018 100644
--- a/db/seed.rkt
+++ b/db/seed.rkt
@@ -86,11 +86,12 @@
(define n (get-nutrient #:formula formula))
(define v (string->number (cdr crop-requirement)))
(values n v)))
- (cond
- [(non-empty-string? crop-name)
- (define crop (get-crop #:name crop-name))
- (create-crop-requirement! profile nutrient-values crop)]
- [else (create-crop-requirement! profile nutrient-values)]))
+ (unless (get-crop-requirement #:profile profile)
+ (cond
+ [(non-empty-string? crop-name)
+ (define crop (get-crop #:name crop-name))
+ (create-crop-requirement! profile nutrient-values crop)]
+ [else (create-crop-requirement! profile nutrient-values)])))
(with-tx (csv-for-each row->seed! next-row)))
(define (seed-initial-crop-rotation!)
@@ -111,7 +112,8 @@
(define n (get-nutrient #:formula (car fertilizer-component)))
(define v (string->number (cdr fertilizer-component)))
(values n v)))
- (create-fertilizer-product! canonical-name brand-name nutrient-values))
+ (unless (get-fertilizer-product #:canonical-name canonical-name)
+ (create-fertilizer-product! canonical-name brand-name nutrient-values)))
(with-tx (csv-for-each row->seed! next-row)))
(module+ test
Copyright 2019--2026 Marius PETER