aboutsummaryrefslogtreecommitdiff
path: root/nar-herder/database.scm
diff options
context:
space:
mode:
Diffstat (limited to 'nar-herder/database.scm')
-rw-r--r--nar-herder/database.scm20
1 files changed, 13 insertions, 7 deletions
diff --git a/nar-herder/database.scm b/nar-herder/database.scm
index 64655df..d945786 100644
--- a/nar-herder/database.scm
+++ b/nar-herder/database.scm
@@ -126,22 +126,28 @@ CREATE TABLE recent_changes (
(sqlite-exec db schema))
-(define (update-schema db)
+(define (table-exists? db name)
(let ((statement
(sqlite-prepare
db
"
-SELECT name FROM sqlite_master WHERE type = 'table' AND name = :name")))
+SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = :name")))
(sqlite-bind-arguments
statement
- #:name "narinfos")
+ #:name name)
+
+ (let ((result
+ (match (sqlite-step statement)
+ (#f #f)
+ (#(1) #t))))
+ (sqlite-finalize statement)
- (match (sqlite-step statement)
- (#f (perform-initial-database-setup db))
- (_ #f))
+ result)))
- (sqlite-finalize statement))
+(define (update-schema db)
+ (unless (table-exists? db "narinfos")
+ (perform-initial-database-setup db))
(sqlite-exec
db