我已经使用 MongoDB 大约一年了,但还没有完全发挥它的潜力。
我一直在开发新软件,除了我自己之外的任何人都看不到,我充分享受数据库的灵活性,并且我对动态数据进行了重大的结构更改。
现在我正处于拥有生产服务器和 3 个开发服务器的地步,我在更改数据结构和同步它们方面遇到了真正的问题。
理论上,开发服务器应该始终拥有来自生产的最新数据。在结构化数据库中,如果我重命名某些东西,我可以运行一个比较工具并在拉取后在生产中进行相应的更改。在 MongoDB 中,这可能变得异常困难。文档之间可能有数百次更改,更不用说从数据库到数据库了。
我一直在查看我的~/.dbshell
文件以了解我所做的更改,但是在程序本身中所做的更改呢?配置数据库更改?
是否有工具或程序可以使这更容易?
我在谷歌上花了几个小时研究其他人是如何做到的。我遇到了 Mongeez,但它比我需要的更加手动和乏味。过去,我只是在一个 git 目录里面做一个mongodump
andmongorestore
来传输数据,但是这些快照太死板了。我阅读了一些关于将新数据从生产转移到开发的博客文章,但没有关于在生产中更新开发文档。我可以写一个比较脚本,但我觉得这是在重新发明轮子。一定有更好的方法。
TL;DR:有哪些方法可以在环境之间对 NoSQL 数据、新条目和更改的数据进行版本控制?