Thanks for mathrick on #lisp for this:

Installing

:alexandria in the list below means that its installable using asdf-install, but i strongly recommend using the repos for each dependency.

darcs get http://common-lisp.net/project/cl-perec/darcs/cl-perec perec 
:asdf-system-connections
darcs get http://www.common-lisp.net/project/cl-rdbms/darcs/cl-rdbms/ rdbms 
darcs get http://www.common-lisp.net/project/cl-syntax-sugar/darcs/cl-syntax-sugar/ syntax-sugar 
:metabang-bind
:alexandria
darcs get http://www.common-lisp.net/project/cl-walker/darcs/cl-walker/ walker
darcs get http://cffi-net.accela.net/darcs/cffi-net/
darcs get http://www.common-lisp.net/project/local-time/darcs/local-time/
:ironclad
darcs get http://www.common-lisp.net/project/defclass-star/darcs/defclass-star/
darcs get http://www.common-lisp.net/project/cl-dwim/darcs/cl-yalog/ yalog
darcs get http://www.common-lisp.net/project/cl-def/darcs/cl-def/
:iterate
:cl-containers
:docudown
:cl-markdown
darcs get http://www.common-lisp.net/project/cl-serializer/darcs/cl-serializer/
darcs get http://www.common-lisp.net/project/cl-dwim/darcs/metacopy/
:contextl
:parse-number
darcs get http://www.common-lisp.net/project/computed-class/darcs/computed-class/
:stefil
:bordeaux-threads
darcs get http://www.common-lisp.net/project/cl-dwim/darcs/postmodern/

Doing something useful with cl-perec

The first thing you need to do is to provide a database to operate on. The default DB object is determined by CL-RDBMS:*DATABASE*. A good candidate to instantiate is the CL-RDBMS:POSTGRESQL-POSTMODERN class, however cl-perec also wants the DB to have a mixin on its own.

(def class* perec-db (cl-perec:database-mixin cl-rdbms:postgresql-postmodern)
  ())
  
(setf *database* 
  (make-instance 'postgresql-postmodern/test :connection-specification 
                                             '(:host "localhost" 
					       :port 5433 
					       :user-name "myuser" 
					       :password "mypass" 
					       :database "mydb"))) 

Now you're ready to run the tests from the showcase:

PRCT> (defpclass c1 ()
        ((s1 :type string :initform "no" :initarg :s1 :accessor s1-of)))
===> #<PERSISTENT-CLASS C1>

PRCT> (with-transaction
        (make-instance 'c1 :s1 "hello"))
===> #<C1 :persistent #t 1>