如何获得持久的本地数据库数据库?

zca*_*ate 19 clojure datomic

使用Datomic,我对如何使用本地数据库感到困惑

如果我输入:

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

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

>> (d/connect "datomic:mem://hello")
#<LocalConnection datomic.peer.LocalConnection@57102fab>

>> Ctrl-D to Disconnect
Run Code Online (Sandbox Code Playgroud)

然后,如果我重新启动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)
Run Code Online (Sandbox Code Playgroud)

我可以创建另一种类型的本地uri来保存我创建的数据库吗?

sw1*_*1nn 19

入门指南谈到使用免费存储协议

使用免费存储协议运行transactor

免费存储协议使用本地磁盘文件进行存储.

您可以使用以下免费存储启动本地交易者:

bin/transactor config/samples/free-transactor-template.properties
Run Code Online (Sandbox Code Playgroud)

此脚本将打印几行输出,包括您将用于连接的基本URI,例如

datomic:free://localhost:4334/<DB-NAME>
Run Code Online (Sandbox Code Playgroud)

要创建连接字符串,只需使用您选择的数据库名称替换,例如"hello":

datomic:free://localhost:4334/hello
Run Code Online (Sandbox Code Playgroud)

使用此URI,您现在应该能够重复上一节中的步骤,这次是您与交易者的连接.