Elephant での Sqlite バックエンド
The Elephant Persistent Object Database で SQLite をバックエンドで使おうとしていつも失敗していたけど、どうやら 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}>)