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

时间:2012-06-12 18:02:28

标签: 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

然后,如果我重新启动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来保存我创建的数据库吗?

2 个答案:

答案 0 :(得分:19)

getting started指南讨论了使用免费存储协议

使用免费存储协议运行transactor

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

您可以按如下方式启动具有免费存储空间的本地交易者:

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

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

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

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

datomic:free://localhost:4334/hello

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

答案 1 :(得分:0)

从2020年开始,尽管仍然免费存在无原子性,但lags a bit in features。 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

请注意,原子云是一个更新的产品。但是,即使考虑使用云,首先探索本地部署似乎也不是没有道理的。如果是这样,请注意尽管要专注于学习客户端api,而不是对等体,因为对等体并不存在于原子云中(实际上,它们像对等体服务器一样存在...这是轻量级客户端随后连接的东西)到运行查询)。