diff of 13a9e1dcbcf6facd107c6ec840e84c0a33343763
13a9e1dcbcf6facd107c6ec840e84c0a33343763
diff --git a/src/main.lisp b/src/main.lisp
index 7e1af8a..f00a89b 100644
--- a/src/main.lisp
+++ b/src/main.lisp
@@ -9,6 +9,8 @@
(log:info "Starting murja server~%")
(with-db
(migrate))
+ (with-db
+ (murja.model.settings:setup-settings))
(let ((server (make-instance 'easy-routes:easy-routes-acceptor :port port)))
(when (equalp 3010 port)
(setf *server* server))
diff --git a/src/model/settings.lisp b/src/model/settings.lisp
index 824d7e8..ece53ea 100644
--- a/src/model/settings.lisp
+++ b/src/model/settings.lisp
@@ -60,6 +60,11 @@
(assert *inside-defsetting?* nil "Please wrap `(defsetting ~a ~a)` inside a define-settings macro" ,(prin1-to-string name) ,(prin1-to-string default-value))
(quote ,name)))
+(defun setup-settings ()
+ (setf *settings*
+ (murja.middleware.db:with-db
+ (make-instance 'Settings))))
+
(defmacro create-settings ()
`(progn
(defclass Settings ()
@@ -73,14 +78,7 @@
)))
*setting-fields*)))
- (defparameter *settings*
- (block settings-loader
- (handler-bind ((cl-postgres:database-socket-error
- (lambda (c)
- (declare (ignore c))
- (return-from settings-loader nil))))
- (murja.middleware.db:with-db
- (make-instance 'Settings)))))
+ (defparameter *settings* nil)
,@(map 'list
(lambda (setting)
diff --git a/src/packages/settings.lisp b/src/packages/settings.lisp
index a230d02..8624129 100644
--- a/src/packages/settings.lisp
+++ b/src/packages/settings.lisp
@@ -1,6 +1,6 @@
(defpackage :murja.model.settings
(:use :cl)
- (:export :setting-getter :all-setting-names :update-setting :defsetting :define-settings :create-settings)
+ (:export :setup-settings :setting-getter :all-setting-names :update-setting :defsetting :define-settings :create-settings)
(:import-from :com.inuoe.jzon :stringify :parse)
(:documentation "This package specifies macros define-settings and defsetting, which are used thus: