The first step in using elephant is to open a store controller. A store controller is an object that coordinates lisp program access to the chosen data store.
To obtain a store controller, you call
open-store with a store
specification. A store specification is a list containing a backend
:CLSQL) and a backend-specific
For :BDB, the second element is a string or pathname that references a local directory for the database files. This directory must be created prior to calling open-store.
(open-store '(:BDB ``/users/me/db/my-db/''))
For :CLSQL the second argument is another list consisting of a specific SQL database and the name of a database file or connection record to the SQL server. Examples are:
(open-store '(:CLSQL (:SQLITE "/users/me/db/sqlite.db"))) (open-store '(:CLSQL (:POSTGRESQL "localhost.localdomain" "mydb" "myuser" ""))))
We use Berkeley DB as our example backend. To open a BDB store-controller we can do the following:
(asdf:operate 'asdf:load-op :elephant) (use-package :elephant) (setf *test-db-spec* '(:BDB "/home/me/db/testdb/")) (open-store *test-db-spec*)
We do not need to store the reference to the store just now as it is
automatically assigned to the variable,
For a deeper discussion of store controller management see the
When you're done with your session, release the store-controller's
resources by calling
Also there is a convenience macro
with-open-store that will
open and close the store, but opening the store is an expensive
operation so it is generally better to leave the store open until your
application no longer needs it.