Function: closql-db
closql-db is a byte-compiled function defined in closql.el.
Signature
(closql-db ARG &rest ARGS)
Implementations
(closql-db (CLASS (subclass closql-database)) &optional LIVEP CONNECTION-CLASS) in `closql.el'.
Undocumented
Source Code
;; Defined in ~/.emacs.d/elpa/closql-20260101.1828/closql.el
(cl-defmethod closql-db ((class (subclass closql-database))
&optional livep connection-class)
(cond-let*
([db (oref-default class singleton)]
[conn (and (not (eq db eieio--unbound))
(oref db connection))]
[_(emacsql-live-p conn)]
db)
((not livep)
(let* ((file (closql--db-prepare-storage class))
(connection-class (or connection-class
(emacsql-sqlite-default-connection)))
(conn (make-instance connection-class :file file))
(db (make-instance class))) ; ignores slot arguments
(oset db connection conn)
(emacsql conn [:pragma (= foreign-keys on)])
(cond-let
((not (emacsql-sqlite-list-tables db))
(closql--db-create-schema db))
[[code-version (oref-default db version)]
[data-version (closql--db-get-version db)]]
((< code-version data-version)
(message "Please update %s package (database schema version %s < %s)"
(oref-default db name) code-version data-version)
(oset-default class disabled t)
(emacsql-close db)
(setq db nil))
((closql--db-update-schema db)))
db))))