20

使用 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

然后,如果我重新启动 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)

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

4

2 回答 2

20

入门指南讨论使用免费存储协议

使用免费存储协议运行交易者

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

您可以使用免费存储启动本地事务,如下所示:

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

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

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

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

datomic:free://localhost:4334/hello

使用此 URI,您现在应该能够重复上一节中的步骤,这一次连接到事务器。

于 2012-06-12T18:21:03.200 回答
1

截至 2020 年,虽然 datomic free 仍然存在,但它在功能方面有点落后。Cognitect 推出了新的 Pro Starter 版本,他们打算将其作为更好的入门方式。这也是免费的,并提供永久许可证。限制只是您获得的免费更新的持续时间,限制为一年。

这是最新的安装指南:https ://docs.datomic.com/on-prem/dev-setup.html

如果您只想尝试一下,最好先使用内存:https ://docs.datomic.com/on-prem/getting-started/connect-to-a-database.html

另请注意,datomic cloud 是一个更新的产品。但即使考虑到云,首先探索本地部署似乎也不是不合理的。如果是这样,请注意尽管专注于学习客户端 api,而不是对等点,因为对等点不存在于 datomic 云中(实际上,它们作为对等服务器存在......这是轻量级客户端然后连接的内容to,运行查询)。

于 2020-04-20T17:22:25.070 回答