[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Mathieu Othacehe |
Date: |
Sun, 17 Jan 2021 05:54:50 -0500 (EST) |
branch: master
commit 508ed333a65b06ed9ea7dd80adbbf1afdd05daaf
Author: Mathieu Othacehe <othacehe@gnu.org>
AuthorDate: Fri Jan 15 14:46:50 2021 +0100
Fix concurrent database creation.
---
bin/cuirass.in | 1 +
src/cuirass/database.scm | 16 +++++++++++-----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/bin/cuirass.in b/bin/cuirass.in
index 81247cd..18e2aab 100644
--- a/bin/cuirass.in
+++ b/bin/cuirass.in
@@ -98,6 +98,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
(let ((opts (getopt-long args %options)))
(parameterize
((%program-name (car args))
+ (%create-database? (not (option-ref opts 'web #f)))
(%package-database (option-ref opts 'database (%package-database)))
(%package-cachedir
(option-ref opts 'cache-directory (%package-cachedir)))
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 701c927..25b2bf1 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -92,6 +92,7 @@
db-clear-workers
db-clear-build-queue
;; Parameters.
+ %create-database?
%package-database
%package-schema-file
%db-channel
@@ -205,6 +206,9 @@ parameters matches the number of arguments to bind."
(delete-duplicates args))))
(exec-query db query (map normalize params))))
+(define %create-database?
+ (make-parameter #f))
+
(define %package-database
(make-parameter #f))
@@ -341,11 +345,13 @@ database object."
(getenv "CUIRASS_DATABASE")
(getenv "CUIRASS_HOST"))))
(db (connect-to-postgres-paramstring param)))
- (match (db-schema-version db)
- (#f
- (db-init db))
- (else
- (db-upgrade db)))))
+ (when (%create-database?)
+ (match (db-schema-version db)
+ (#f
+ (db-init db))
+ (else
+ (db-upgrade db))))
+ db))
(define (db-close db)
"Close database object DB."