Elephant での Sqlite バックエンド

The Elephant Persistent Object DatabaseSQLite をバックエンドで使おうとしていつも失敗していたけど、どうやら sudo apt-get install sqlite3 していなかったぽい orz

(require :elephant)
(use-package :elephant)

(open-store '(:clsql (:sqlite3 "/tmp/a.db")))

(defpclass foo ()
  ((slot1 :initarg :slot1 :accessor slot1))
  (:index t))

(defmethod print-object ((foo foo) stream)
  (print-unreadable-object (foo stream :type t :identity t)
    (format stream "slot1: ~a" (slot1 foo))))

(defpclass bar ()
  ((slot1 :initform "bar" :accessor slot1)))

(defmethod print-object ((bar bar) stream)
  (print-unreadable-object (bar stream :type t :identity t)
    (format stream "slot1: ~a" (slot1 bar))))

(make-instance 'foo
               :slot1 (make-instance 'bar))
(make-instance 'foo
               :slot1 (list (make-instance 'bar) (make-instance 'bar)))

(get-instances-by-class 'foo)
;;(#<FOO slot1: #<BAR slot1: bar {1002F78DA1}> {1004390851}>
;; #<FOO slot1: (#<BAR slot1: bar {1002EFF511}>
;;               #<BAR slot1: bar {1002F10991}>) {1002F210E1}>)