我试图删除datomic repl中的数据库数据库。我有运行transactor和peer-server,并且正在使用客户端api。这是我在repl中所做的:
(require '[clojure.core.async :refer [<!!]]
'[datomic.client :as client])
(use 'datomic.client.admin)
(pprint (<!! (delete-database
{:db-name "datemo"
:account-id client/PRO_ACCOUNT
:secret "datemo"
:region "none"
:endpoint "localhost:8998"
:service "peer-server"
:access-key "datemo"})))
我得到的错误如下:
{:cognitect.anomalies/category :cognitect.anomalies/incorrect,
:datomic.client/http-error {:cause "Invalid Op"}}
docs for the datomic client调用参数映射,这是上面提供的。他们似乎也暗示所需的参数是:db-name
,但如果我做了类似的事情:
(pprint (<!! (delete-database {:db-name "datemo"})))
我收到一条错误消息,指出&#34;连接配置&#34;无效:
#:cognitect.anomalies{:category :cognitect.anomalies/incorrect,
:message
"Incomplete or invalid connection config: {:timeout 60000, :account-id \"00000000-0000-0000-0000-000000000000\", :access-key \"datemo\", :secret \"datemo\", :endpoint \"localhost:8998\", :service \"peer-server\", :region nil, :db-name \"datemo\"}"}
答案 0 :(得分:1)
知情人士的回答:
Peerserver无法删除或创建数据库。由于单个peererver可以同时连接到多个transactors /后端存储,语义不清楚'create'意味着什么 - 例如它应该使用哪个后端?
答案 1 :(得分:1)
客户端API无法创建和删除数据库,因为对等服务器不拥有数据库。客户端API与对等服务器通信,因此客户端API不会创建或删除。您将需要使用对等库来创建或删除。
http://docs.datomic.com/clojure/#datomic.api/delete-database http://docs.datomic.com/clojure/#datomic.api/create-database
Datomic docs中的本地开发人员设置教程使用了peer api,并且在datomic示例的当天也有使用peer api的例子:
http://docs.datomic.com/dev-setup.html#create-db https://github.com/Datomic/day-of-datomic