2016-01-06 28 views
0

我可以訪問repl,我有一個uri,我可以連接。如何連接,查看存在的實體和屬性,然後查看它們的值,然後深入分析等等?我只是使用我沒有註冊的免費版本。第一個查詢數據庫數據庫

到目前爲止,這是我曾嘗試:

C:\programs\datomic-free-0.9.5327>.\bin\repl 
Clojure 1.6.0 
user=> (use '[datomic.api :only [q db] :as d]) 
nil 
user=> (def conn (d/connect "datomic:dev://localhost:4334/somedb")) 
IllegalArgumentExceptionInfo :db.error/unsupported-protocol Unsupported protocol :dev datomic.error/arg (error.clj:57) 
user=> 

user=> (def conn (d/connect "datomic://localhost:4334/somedb")) 
IllegalArgumentExceptionInfo :db.error/invalid-db-uri Invalid database URI datomic://localhost:4334/somedb datomic.error/arg (error.clj:57) 

user=> (def conn (d/connect "datomic:mem//somedb")) 
IllegalArgumentExceptionInfo :db.error/invalid-db-uri Invalid database URI datomic:mem//somedb datomic.error/arg (error.clj:57) 

隨着MySQL或Oracle數據庫操作員能夠(給出正確的密碼),列出所有的數據庫,連接到他們中的一個,見它的表格,然後通過查詢其中一個來開始工作。

即使這個數據庫('somedb')在'內存'中,通過上下文的方式,我仍然期望它存在,因爲有一個交易者正在運行。不過交易者是一個有點懷疑,因爲這是它看起來像:

C:\programs\datomic-free-0.9.5327>.\bin\transactor .\config\samples\free-transactor-template.properties 
Starting datomic:free://localhost:4334/<DB-NAME>, storing data in: data ... 
System started datomic:free://localhost:4334/<DB-NAME>, storing data in: data 

我感到困惑的是查詢應該是啓動和運行,並在其中有值的數據庫。

回答

3

我可以澄清這些錯誤:

user=> (use '[datomic.api :only [q db] :as d]) 
nil 
user=> (def conn (d/connect "datomic:dev://localhost:4334/somedb")) 
IllegalArgumentExceptionInfo :db.error/unsupported-protocol Unsupported protocol :dev datomic.error/arg (error.clj:57) 

這裏的URI格式正確,但錯誤表明您試圖訪問一個親獨佔存儲(DEV),而不是由自由所允許的存儲器(免費和mem)。請注意,您可以使用免費級別的入門許可證訪問專業存儲格式(即,您不需要付費許可證即可使用它)。

user=> (def conn (d/connect "datomic://localhost:4334/somedb")) 
IllegalArgumentExceptionInfo :db.error/invalid-db-uri Invalid database URI datomic://localhost:4334/somedb datomic.error/arg (error.clj:57) 

這裏你根本沒有指定存儲協議,即dev在第一個調用中。這是必需的。

user=> (def conn (d/connect "datomic:mem//somedb")) 
IllegalArgumentExceptionInfo :db.error/invalid-db-uri Invalid database URI datomic:mem//somedb datomic.error/arg (error.clj:57) 

這裏你錯過mem:。對於上述錯誤,connect的API文檔涵蓋了正確的URI構造。

您可以列出數據庫get-database-names,記錄here

起牀,並查詢運行時,你可能會使用console,一個Web應用程序/ GUI負責處理數據庫的這種自動房源,連接到一個,查詢等

有更好的初體驗