我为人人人人为我 發表於 2024-2-8 01:11:00

AgileConfig-1.9.0 发布,支持 MongoDB 存储

<p>Hello 大家好,先祝福大家新年快乐。🎉🎉🎉 <code>AgileConfig</code> <code>1.9.0</code> 版本终于赶在农历年前发布了。<br>
<code>Mongodb</code> 当前做为一款非常成熟的 <code>Nosql</code> 产品,已经有越来越多的产品或项目基于它来构建。在 <code>AgileConfig</code> 开源的这几年之间,陆陆续续收到不少同学问为啥不支持 <code>Mongodb</code>。我的回答是没有时间(懒)。一是因为确实没有时间,二是要支持 <code>Mongodb</code> 这种非关系型数据库,需要对 <code>AgileConfig</code> 项目本身做比较大的重构。就在去年 12 月 <code>AgileConfig</code> 收到了对于 <code>Mongodb</code> 的支持的 PR。这是 <code>AgileConfig</code> 开源这几年来收到的一个最大的 PR。往常大家都是嘴上说要这个,要那个功能,但是真正动手的聊聊无几,收到这个 PR 的时候让我非常欣慰。<br>
这个 PR 当时虽然能工作,但是不够完美。在我跟 <code>pengqian089</code> 同学多次沟通后决定对 <code>AgileConfig</code> 进行一次比较大的重构:在 <code>RDB</code> 与 <code>Nosql</code> 之间在抽象一层仓储层。这样对与后续扩展不管是 <code>RDB</code> 还是其他 <code>Nosql</code> 会更加的容易。同时为了保证项目的可靠性,我们还改进跟添加了更多的单元测试用例。我们共同合作 2 个多月,修改了超过 170 个文件,终于有了当前这个新版本。</p>
<h2 id="如何使用-mongodb-作为存储">如何使用 Mongodb 作为存储</h2>
<p>要使用 <code>mongodb</code> 作为存储,同样非常简单。<br>
如果是本地使用编译后运行那么请获取最新源码后修改 appsettings.json 文件:</p>
<pre><code>"db": {
"provider": "mongodb",
"conn": "mongodb://192.168.0.125:27017/agile_config_database"
}
</code></pre>
<p>如果使用 docker 运行请使用环境变量注入参数:</p>
<pre><code>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
</code></pre>
<p>运行起来后使用体验跟使用 <code>mysql</code> 等数据库并无差异。</p>
<blockquote>
<p>注意:请尽量使用mongodb集群作为存储,因为单节点 <code>mongodb</code> 并不支持事务。</p>
</blockquote>
<h2 id="break-change">break change</h2>
<p>如果是从老版本升级到 <code>1.9.0</code> 版本,那么请注意目前 <code>agc_sys_log</code> 系统日志表的主键 id 数据类型从原来的自增 integer 修改成了 varchar36 字符型。升级前请自行修改表结构。原因是 mongodb 不支持自增主键。</p>
<h2 id="最后">最后</h2>
<p>最后再次感谢 pengqian089 同学的贡献。也期待更多的同学能够支持 AgileConfig, 多多使用,多多 PR。新的一年里让我们为 .NET 生态做更多的贡献。</p>
<p>✨✨✨ Github地址:https://github.com/dotnetcore/AgileConfig开源不易,欢迎 star ✨✨✨</p>
<p>演示地址:http://agileconfig-server.xbaby.xyz/超管账号:admin 密码:123456</p>
<h2 id="关注我的公众号一起玩转技术">关注我的公众号一起玩转技术</h2>
<p><img src="https://static.xbaby.xyz/qrcode.jpg" alt="" loading="lazy"></p>


</div>
<div id="MySignature" role="contentinfo">
    <div id="AllanboltSignature">      
<p id="PSignature" style="border-top: #e0e0e0 1px dashed; border-right: #e0e0e0 1px dashed; border-bottom: #e0e0e0 1px dashed; border-left: #e0e0e0 1px dashed; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; font-family: 微软雅黑; font-size: 11px">      
QQ群:1022985150 VX:kklldog 一起探讨学习.NET技术
<br>
作者:Agile.Zhou(kklldog)            
<br>
出处:http://www.cnblogs.com/kklldog/
<br>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
</p>
</div><br><br>
来源:https://www.cnblogs.com/kklldog/p/18011534/agileconfig-190
頁: [1]
查看完整版本: AgileConfig-1.9.0 发布,支持 MongoDB 存储