回答
我是馴鹿開發者之一。
我們使用db協議來抽象數據庫之間的差異。我有一個長期的計劃來擴展協議,以便我們可以使用不是sql的存儲。特別是Datomic(以及neo4j)。我們避免了模型名稱空間本身的sql,因此大部分更改都將在數據庫適配器協議上進行。雖然協議需要擴展,並且一些現有的操作需要換出協議。
如果您想對此做出貢獻,我會很樂意提供一些指導,但以上是對需要什麼的粗略概述。
我不是馴鹿專家,但對於我所看到的瀏覽源代碼,我不認爲它是目前專爲Datomic插件&設計的玩法。
大部分critical model querying functions都是直線上升的sql
,與model creation相同。
所以,你可以嘗試用相同的API,這將是難以改寫完整model.clj
,或者你可以嘗試使用model hooks,但是這將是一個真正的黑客。
我不是馴鹿的維護者,但我認爲它目前不是用Datomic設計的,也不是用任何其他NoSQL數據庫設計的,就像你目前看到的supported database adapters。
嘿,作爲模型鉤子系統的作者之一,我不得不說這不是模型鉤子可以做的事情。正如我在答案中詳細說明的那樣,model.clj將只需要很少的更改,真正的更改將在db適配器協議中,並在較小程度上直接用戶(模型和字段)。 – noisesmith
這就是它是一個_real hack_的原因,我正在考慮鏡像鉤子上的更新:) –
鉤子環繞的所有代碼都會中斷。你可以使用在動作之前運行的鉤子,執行動作,並返回一個空的查詢,我猜?然後你需要在後掛鉤中替換結果。似乎比擴展/泛化協議更麻煩。 – noisesmith
- 1. 使用Clojure的規格與Datomic實體
- 2. 入門Datomic和Clojure的在Emacs
- 3. Clojure的prewalk無限遞歸查詢datomic
- 4. 運行在框架
- 5. 推薦Clojure的Web框架
- 6. Clojure的REST API框架
- 7. java.io.FileNotFoundException當運行datomic確保交易者
- 8. Clojure編譯並使用cygwin運行
- 9. 運行Play框架項目
- 10. 用遊戲運行離子框架!本地框架
- 11. 運行Clojure程序
- 12. 運行測試用例TestNG的框架
- 13. 如何在沒有框架的情況下使用框架類運行代碼?
- 14. 在行爲框架中使用定製標籤運行場景
- 15. 使用Datomic嵌套結構
- 16. Datomic - 使用OR子句
- 17. 如何在運行框架中運行JUnit測試用例2.3.2
- 18. (新手)無法用站點使用laravel框架運行PHP
- 19. iphone - 使用iAd框架在3.1上運行應用程序
- 20. Clojure/Java的分佈式計算框架
- 21. Clojure的最佳單元測試框架?
- 22. 添加屬性到現有datomic架構
- 23. 是否可以使用完整.NET框架的運行時運行Silverlight代碼?
- 24. 運行.NET框架.NET框架下1.1程序4.0
- 25. Clojure:無法運行Sparkling
- 26. Clojure-koans運行錯誤:
- 27. 在clojure中運行D3.js
- 28. 如何運行Clojure文件?
- 29. 讓Clojure運行(lein repl)
- 30. 如何指定在運行時使用哪個.NET框架
我的深入答案在下方,但在進一步的考慮中,您可以轉儲caribou.model/cms,保留路由,渲染等,並添加您自己的基於datomic的商店而不會改變馴鹿芯。 – noisesmith