當前位置: 妍妍網 > 碼農

AgileConfig-1.9.0 釋出,支持MongoDB儲存

2024-02-09碼農

Hello 大家好,先祝福大家新年快樂。🎉🎉🎉 AgileConfig 1.9.0 版本終於趕在農歷年前釋出了。
Mongodb 當前做為一款非常成熟的 Nosql 產品,已經有越來越多的產品或計畫基於它來構建。在 AgileConfig 開源的這幾年之間,陸陸續續收到不少同學問為啥不支持 Mongodb 。我的回答是沒有時間(懶)。一是因為確實沒有時間,二是要支持 Mongodb 這種非關系型資料庫,需要對 AgileConfig 計畫本身做比較大的重構。就在去年 12 月 AgileConfig 收到了對於 Mongodb 的支持的 PR。這是 AgileConfig 開源這幾年來收到的一個最大的 PR。往常大家都是嘴上說要這個,要那個功能,但是真正動手的聊聊無幾,收到這個 PR 的時候讓我非常欣慰。
這個 PR 當時雖然能工作,但是不夠完美。在我跟 pengqian089 同學多次溝通後決定對 AgileConfig 進行一次比較大的重構:在 RDB Nosql 之間在抽象一層倉儲層。這樣對與後續擴充套件不管是 RDB 還是其他 Nosql 會更加的容易。同時為了保證計畫的可靠性,我們還改進跟添加了更多的單元測試用例。我們共同合作 2 個多月,修改了超過 170 個檔,終於有了當前這個新版本。

如何使用 Mongodb 作為儲存

要使用 mongodb 作為儲存,同樣非常簡單。
如果是本地使用編譯後執行那麽請獲取最新源碼後修改 appsettings.json 檔:

"db": {
"provider""mongodb",
"conn""mongodb://192.168.0.125:27017/agile_config_database"
}

如果使用 docker 執行請使用環境變量註入參數:

sudo docker run \
--name agile_config \
-e TZ=Asia/Shanghai \
-e adminConsole=true \
-e db__provider=mongodb \
-e db__conn="mongodb://192.168.0.125:27017/agile_config_database" \
-p 5000:5000 \
#-v /your_host_dir:/app/db \
-d kklldog/agile_config:latest

執行起來後使用體驗跟使用 mysql 等資料庫並無差異。

註意:請盡量使用mongodb集群作為儲存,因為單節點 mongodb 並不支持事務。

break change

如果是從老版本升級到 1.9.0 版本,那麽請註意目前 agc_sys_log 系統日誌表的主鍵 id 數據型別從原來的自增 integer 修改成了 varchar36 字元型。升級前請自行修改表結構。原因是 mongodb 不支持自增主鍵。

最後

最後再次感謝 pengqian089 同學的貢獻。也期待更多的同學能夠支持 AgileConfig, 多多使用,多多 PR。新的一年裏讓我們為 .NET 生態做更多的貢獻。

✨✨✨ Github地址:https://github.com/dotnetcore/AgileConfig 開源不易,歡迎 star ✨✨✨

演示地址:http://agileconfig-server.xbaby.xyz/ 超管帳號:admin 密碼:123456

關註我的公眾號一起玩轉技術