Ensure idempotency for the seeding of other domain entities.

Commit
6e350f8921a7979304d42e878ddc63aa9987bb7e
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
db/seed.rkt
index 8500a4bf..3c3f018c 100644..100644
@@ -86,11 +86,12 @@
86 86 (define n (get-nutrient #:formula formula))
87 87 (define v (string->number (cdr crop-requirement)))
88 88 (values n v)))
89 Removed: (cond
90 Removed: [(non-empty-string? crop-name)
91 Removed: (define crop (get-crop #:name crop-name))
92 Removed: (create-crop-requirement! profile nutrient-values crop)]
93 Removed: [else (create-crop-requirement! profile nutrient-values)]))
89 Added: (unless (get-crop-requirement #:profile profile)
90 Added: (cond
91 Added: [(non-empty-string? crop-name)
92 Added: (define crop (get-crop #:name crop-name))
93 Added: (create-crop-requirement! profile nutrient-values crop)]
94 Added: [else (create-crop-requirement! profile nutrient-values)])))
94 95 (with-tx (csv-for-each row->seed! next-row)))
95 96
96 97 (define (seed-initial-crop-rotation!)
@@ -111,7 +112,8 @@
111 112 (define n (get-nutrient #:formula (car fertilizer-component)))
112 113 (define v (string->number (cdr fertilizer-component)))
113 114 (values n v)))
114 Removed: (create-fertilizer-product! canonical-name brand-name nutrient-values))
115 Added: (unless (get-fertilizer-product #:canonical-name canonical-name)
116 Added: (create-fertilizer-product! canonical-name brand-name nutrient-values)))
115 117 (with-tx (csv-for-each row->seed! next-row)))
116 118
117 119 (module+ test