[Racket] Ferti hydroponic nutrient solver, redux.
Add seeding of nutrient targets.
db/seed.rkt
@@ -3,12 +3,14 @@
3
3
(provide seed-database!)
4
4
5
5
(require csv-reading
6
Added:
gregor
6
7
racket/runtime-path
7
8
"conn.rkt"
8
9
"../models/nutrient.rkt"
9
10
"../models/nutrient-measurement.rkt"
10
11
"../models/crop.rkt"
11
12
"../models/crop-requirement.rkt"
13
Added:
"../models/nutrient-target.rkt"
12
14
"../models/fertilizer-product.rkt")
13
15
14
16
(define (seed-database!)
@@ -20,6 +22,8 @@
20
22
(seeded "crops")
21
23
(seed-crop-requirements!)
22
24
(seeded "crop requirements")
25
Added:
(seed-nutrient-targets!)
26
Added:
(seeded "nutrient targets")
23
27
(seed-existing-fertilizer-products!)
24
28
(seeded "existing fertilizer products"))
25
29
@@ -105,6 +109,13 @@
105
109
(with-tx
106
110
(csv-for-each row->seed! next-row)))
107
111
112
Added:
(define (seed-nutrient-targets!)
113
Added:
(define effective-on (date->iso8601 (date 2025 01 01)))
114
Added:
(define nutrient-values
115
Added:
(average-crop-requirement-nutrient-values
116
Added:
(list (cons (get-crop-requirement #:id 1) 100))))
117
Added:
(create-nutrient-target! effective-on nutrient-values))
118
Added:
108
119
(define-runtime-path fertilizer-csv "data/dolibarr_fertilizer_compositions_percentage.csv")
109
120
(define (seed-existing-fertilizer-products!)
110
121
(define next-row (make-csv-reader (open-input-file fertilizer-csv)))
@@ -129,7 +140,6 @@
129
140
130
141
(module+ test
131
142
(require "migrations.rkt")
132
Removed:
(connect! #:path "test.sqlite3"
133
Removed:
)
143
Added:
(connect! #:path 'memory)
134
144
(migrate-all!)
135
145
(seed-database!))