使用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来保存我创建的数据库吗?
答案 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,而不是对等体,因为对等体并不存在于原子云中(实际上,它们像对等体服务器一样存在...这是轻量级客户端随后连接的东西)到运行查询)。