diff --git a/storage/storage.lisp b/storage/storage.lisp index a1decbb..1fbe9e9 100644 --- a/storage/storage.lisp +++ b/storage/storage.lisp @@ -8,13 +8,9 @@ (:core :scopes/core) (:alx :alexandria)) (:export #:config - #:*db-config* - #:make-engine #:make-storage #:engine - #:timestamp-to-sql #:storage #:setup - #:params #:db-options #:db-params #:qualified-table-name + #:params #:qualified-table-name #:do-sql #:query #:drop-table - #:schema #:normalize-keyword #:normalize-plist)) (in-package :scopes/storage) @@ -30,29 +26,10 @@ ;;;; db configurations -(defvar *backends* - '(:dbi dbi-make-engine)) - -(defvar *db-engines* - '(:postgres db-engine-pg)) - (defvar *db-params* '(:sqlite3 (:id-type integer :json-type json :ts-sql identity) :postgres (:id-type bigserial :json-type jsonb :ts-sql ts-string))) -(defclass db-engine () - ((connect :initarg :connect) - (params :initarg :params) - (config :reader config :initarg :config))) - -(defun make-engine (cfg) - (let* ((dbconf (db-config cfg)) - (backend (getf dbconf :backend))) - (funcall (getf *backends* backend) dbconf))) - -(defgeneric timestamp-to-sql (engine ts) - (:method ((engine db-engine) ts) ts)) - ;;;; context and storage classes (defclass context (core:context) @@ -80,19 +57,6 @@ (setf (schema st) (getf (getf conf :options) :schema)) ctx)) -(defun make-storage (engine) - (let ((st (make-instance 'storage :engine engine)) - (conn (funcall (slot-value engine 'connect)))) - (setf (slot-value st 'conn) conn) - st)) - -(defun db-params (st) - (slot-value (slot-value st 'engine) 'params)) - -(defun db-options (st) - (let ((config (config (engine st)))) - (getf config :options))) - ;;;; database (SQL) interface (defun qualified-table-name (st tn) @@ -138,20 +102,5 @@ ;;;; backend-/driver-specific stuff -(defun dbi-make-engine (config) - (let* ((db-type (getf config :db-type)) - (params (getf *db-params* db-type)) - (engine (getf *db-engines* db-type 'db-engine)) - (conn-args (getf config :connect-args))) - (make-instance engine - :params params :config config - :connect #'(lambda () - (apply #'dbi:connect-cached db-type conn-args))))) - -(defclass db-engine-pg (db-engine) ()) - -(defmethod timestamp-to-sql ((engine db-engine-pg) ts) - (ts-string ts)) - (defun ts-string (ts) (format nil "~a" (local-time:universal-to-timestamp ts))) diff --git a/storage/tracking.lisp b/storage/tracking.lisp index bca7ed4..58d9fd6 100644 --- a/storage/tracking.lisp +++ b/storage/tracking.lisp @@ -21,9 +21,6 @@ (data :accessor data :initform nil) (container :reader container :initarg :container))) -(defun engine (tr) - (storage:engine (storage (container tr)))) - (defun timestamp-to-sql (tr ts) (funcall (getf (storage:params (storage (container tr))) :ts-sql) ts)) @@ -54,7 +51,6 @@ (with-slots ((trid trackid) (ts time-stamp) data) track (if trid (setf (getf vl :trackid) trid)) (if ts (setf (getf vl :timestamp) (timestamp-to-sql track ts))) - ;(storage:timestamp-to-sql (engine track) ts))) (if data (setf (getf vl :data) (jzon:stringify data)))) vl)) diff --git a/test/test-storage.lisp b/test/test-storage.lisp index 5636eda..d5deeac 100644 --- a/test/test-storage.lisp +++ b/test/test-storage.lisp @@ -33,9 +33,6 @@ (core:setup-services) (let* ((ctx (core:find-service :storage)) (cfg (core:config ctx))) - ;(engine (storage:make-engine cfg)) - ;(st (storage:make-storage engine))) - ;(setf (storage:schema st) (getf (storage:db-options st) :schema)) (test-track ctx) (t:show-result)))