2017-02-19 73 views
0

我试图删除datomic repl中的datomic数据库。我有交易者和对等服务器运行,并且正在使用客户端API。下面是我在做REPL:为什么在尝试删除datomic db时会出现http-错误?

(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"}))) 

我得到一个错误,指出“连接配置”是无效的:

#: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\"}"} 

回答

1

从人回答在知道:

Peerserver无法删除或创建数据库。由于一个同伴服务器可以同时连接到多个交易者/后端存储,所以语义不清楚“创建”意味着什么 - 它应该使用哪个后端?

1

由于对等服务器不拥有数据库,客户端API无法创建和删除数据库。客户端API与对等服务器通信,因此客户端API不会创建或删除。您将需要使用对等库来创建或删除。

http://docs.datomic.com/clojure/#datomic.api/delete-database http://docs.datomic.com/clojure/#datomic.api/create-database

在Datomic文档的本地开发设置教程使用对等API,也有使用对API中的datomic例子天例子:

http://docs.datomic.com/dev-setup.html#create-db https://github.com/Datomic/day-of-datomic

相关问题