aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2021-06-16 13:43:32 +0100
committerChristopher Baines <mail@cbaines.net>2021-06-16 13:44:00 +0100
commit0dc05982cde052c985bb440dc026cbe3334ee50b (patch)
treeeaeedc6f2763488bf8b354824b82bcf9f4bc89fe /scripts
parent673d762e681568fb5c5598d456df8312e8d40cae (diff)
downloaddata-service-0dc05982cde052c985bb440dc026cbe3334ee50b.tar
data-service-0dc05982cde052c985bb440dc026cbe3334ee50b.tar.gz
Try to adapt the PostgreSQL paramstring to use with sqitch
Diffstat (limited to 'scripts')
-rw-r--r--scripts/guix-data-service.in38
1 files changed, 28 insertions, 10 deletions
diff --git a/scripts/guix-data-service.in b/scripts/guix-data-service.in
index ade3ca3..481e87d 100644
--- a/scripts/guix-data-service.in
+++ b/scripts/guix-data-service.in
@@ -141,18 +141,36 @@
(list (%config 'sqitch)
"deploy"
"--db-client" (%config 'sqitch-psql)
- "--chdir" (dirname (%config 'sqitch-plan))
+ "--chdir" (dirname (dirname (%config 'sqitch-plan)))
"--plan-file" (%config 'sqitch-plan)
- (string-append "db:pg://"
- (%config 'database-user)
- "@"
- (if (string=? (%config 'database-host)
- "localhost")
- "" ; This means the unix socket
+ (let* ((database-config (get-database-config))
+ (params (string-join
+ (map
+ (match-lambda
+ ((key . val)
+ (string-append key "=" val)))
+ (filter
+ (match-lambda
+ ((key . _)
+ (not (member key '("user"
+ "host"
+ "dbname")))))
+ database-config))
+ "&")))
+ (string-append "db:pg://"
+ (assoc-ref database-config "user")
+ "@"
+ (if (string=? (assoc-ref database-config "host")
+ "localhost")
+ "" ; This means the unix socket
; connection will be used
- (%config 'database-host))
- "/"
- (%config 'database-name)))))
+ (assoc-ref database-config "host"))
+ "/"
+ (assoc-ref database-config "dbname")
+ (if (string-null? params)
+ ""
+ "?")
+ params)))))
(simple-format #t "running command: ~A\n"
(string-join command))
(unless (zero? (apply system* command))