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

问题描述 投票:20回答:2

使用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来保存我创建的数据库吗?

clojure datomic
2个回答
20
投票

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

使用免费存储协议运行事务处理器

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

您可以按以下步骤启动具有免费存储空间的本地事务处理程序:

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

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

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

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

datomic:free://localhost:4334/hello

使用此URI,您现在应该能够重复上一部分的步骤,这次是建立与事务处理程序的连接。


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,而不是对等体,因为对等体不存在于原子云中(实际上,它们像对等体服务器一样存在...这是轻量级客户端随后连接到运行的对象)查询)。

© www.soinside.com 2019 - 2024. All rights reserved.