2012-06-12 2 views
19

Con Datomic, io sono confuso su come ottenere un database locale per giocare conCome ottenere un database datomico locale permanente?

Se digito:

>>(ns datomic-tut (:use [datomic.api :as d])) 
nil 

>>(d/create-database "datomic:mem://hello") 
true 

>> (d/connect "datomic:mem://hello") 
#<LocalConnection [email protected]> 

>> Ctrl-D to Disconnect 

Poi, se ricomincio il repl:

>> (ns project-ns (:use [datomic.api :as d])) 
nil 

>> (d/connect "datomic:mem://hello") 
ExceptionInfo :peer/db-not-found Could not find hello in catalog clojure.core/ex-info (core.clj:4227) 

C'è un altro tipo di uri locale che posso creare che salva il database che creo?

risposta

19

la guida getting started parla usando il protocollo di archiviazione gratuito

Esecuzione del transactor con il protocollo di archiviazione gratuito

Il protocollo di archiviazione gratuito utilizza i file su disco locale per la conservazione.

è possibile avviare una transactor locale con spazio libero come segue:

bin/transactor config/samples/free-transactor-template.properties 

Questo script stamperà alcune righe di output, tra cui l'URI di base che verrà utilizzato per la connessione, ad esempio,

datomic:free://localhost:4334/<DB-NAME> 

Per creare una stringa di connessione, è sufficiente sostituire con un nome di database a scelta, ad es. "Ciao":

datomic:free://localhost:4334/hello 

Utilizzando questo URI, si dovrebbe ora essere in grado di ripetere i passaggi dalla sezione precedente, questa volta facendo la connessione al transactor.

+0

ahh ... Ho saltato quel passo quando stavo passando per il tut! Grazie! – zcaudate

+0

Ora si può usare anche il protocollo 'datomic: free: //'. – vemv

+0

@vemv - grazie Ho aggiornato la risposta – sw1nn