前言:
在實做了dbdiagram-oss之後,如果是NoSQL像是MongoDB,有沒有類似的方式或工具呢?
我找到了Mongo Modeler(github),這個有團隊在開發和維護,而且一樣是純前端的工具,所以,應該應該可以無痛移植dbdiagram-oss後端吧。😁
以Mongo Modeler(github)為基礎用claude-code透過Vibe-Coding修改和實做,實做完成。
成果:
整份專案在
https://gitlab.com/ycfunet/mongo_modeler
實做過程:
它的後端幾乎不用改就能用,所以大部分都是前端修改工作。
考慮到Mongo Modeler還在持續維護和更新,我希望盡可能少的改動,Claude Code給了我實做建議 - JavaScript注入,非常聰明而有效。
考慮到Mongo Modeler還在持續維護和更新,我希望盡可能少的改動,Claude Code給了我實做建議 - JavaScript注入,非常聰明而有效。
因此,這個專案的前端改動,都是用外掛,以注入方式完成的,效果相當好。
但在Release前的測試時發現,MCP工具有點問題。😅
果然,問題總在意料外的地方出現。
MongoDB有定義Document的json結構,但這結構並沒有描述Collection之間的「關聯線(Relationships)」,但是Mongo Modeler是可以設定Collection間的關聯線(Relationships),並且能夠顯示,那它如何儲存的?
原理很簡單,Mongo Modeler有自己的json資料格式, Mongo Modeler資料格式中包括了Collection的座標以及關聯線(Relationships)描述。
但因為Mongo Modeler的json格式並不是標準,因此LLM不會有格式的資訊,LLM只認識MongoDB的Document json結構,這怎麼辦呢?
為此,我請Claude Code修改了MCP Server程式,先實做一個轉換程式碼,用來雙向轉換MongoDB ⮂ Mongo Modeler的json格式。接著想了想,讓它在get function同時回傳2種格式的內容,LLM就能透過回傳的內容知道2種格式的對應關係和Mongo Modeler格式樣式。接著修改create和modify,分別實做create和create_mongo以及modify和modify_mongo,這樣能夠讓LLM用這兩種格式建立和修改schema json,讓Ai能夠與Mongo Modeler協作。
Claue Code改的程式碼很厲害,它實做時強調,如果建立時是Mongo Modeler格式,修改時用modify_mongo,儘管修改時的關聯線(Relationships)無法處理,但它能保持modify_mongo之前的所有關聯線(Relationships)。👍
沒有留言:
張貼留言