2013-11-29 74 views
1

運行Datomic和Caribou框架(dev和prod服務器)需要做什麼?Clojure:使用Caribou框架運行Datomic

換句話說,我怎樣才能馴鹿馴鹿發生?

希望它是有道理的!謝謝!

+0

我的深入答案在下方,但在進一步的考慮中,您可以轉儲caribou.model/cms,保留路由,渲染等,並添加您自己的基於datomic的商店而不會改變馴鹿芯。 – noisesmith

回答

3

我是馴鹿開發者之一。

我們使用db協議來抽象數據庫之間的差異。我有一個長期的計劃來擴展協議,以便我們可以使用不是sql的存儲。特別是Datomic(以及neo4j)。我們避免了模型名稱空間本身的sql,因此大部分更改都將在數據庫適配器協議上進行。雖然協議需要擴展,並且一些現有的操作需要換出協議。

如果您想對此做出貢獻,我會很樂意提供一些指導,但以上是對需要什麼的粗略概述。

1

我不是馴鹿專家,但對於我所看到的瀏覽源代碼,我不認爲它是目前專爲Datomic插件&設計的玩法。

大部分critical model querying functions都是直線上升的sql,與model creation相同。

所以,你可以嘗試用相同的API,這將是難以改寫完整model.clj,或者你可以嘗試使用model hooks,但是這將是一個真正的黑客

我不是馴鹿的維護者,但我認爲它目前不是用Datomic設計的,也不是用任何其他NoSQL數據庫設計的,就像你目前看到的supported database adapters

+1

嘿,作爲模型鉤子系統的作者之一,我不得不說這不是模型鉤子可以做的事情。正如我在答案中詳細說明的那樣,model.clj將只需要很少的更改,真正的更改將在db適配器協議中,並在較小程度上直接用戶(模型和字段)。 – noisesmith

+0

這就是它是一個_real hack_的原因,我正在考慮鏡像鉤子上的更新:) –

+0

鉤子環繞的所有代碼都會中斷。你可以使用在動作之前運行的鉤子,執行動作,並返回一個空的查詢,我猜?然後你需要在後掛鉤中替換結果。似乎比擴展/泛化協議更麻煩。 – noisesmith