2017-02-19 76 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

相關問題