我正在使用带有自定义文件夹的 mongodb 来保存数据,但该数据未与 github 同步,因为文件不会更改



我使用github对我的文件进行版本化,我也想对我的数据库进行版本化。在这种情况下,这只是为了测试目的。

但是mongodb创建的数据库文件没有更改,文件更改的数据是几周前的:因此github有旧数据。。

我真的不明白为什么如果我更改数据库中的一些数据,mongodb不保存到文件中。。。或者至少文件一定是以某种方式更改了。。

MongoDB预先分配数据文件,然后逐渐填充。也许这就是为什么变化没有被正确地接受的原因。

顺便说一句,在所有可能的MongoDB数据库版本控制方法中,我不确定将datadir本身保存在Git存储库中是否是最好的方法。

备选方案:运行mongodump将导致数据库或集合的BSON转储,而运行mongoexport将导致JSONCSV。两者都可以通过mongorestoremongoimport读取,请参阅文档。

然后可以使用您最喜欢的工具对这些转储进行版本控制。就我个人而言,在使用Git时,我会对JSON转储进行版本化,例如

mongoexport --db mydatabase --collection mycollection > mycollection.json

将生成一个JSON文件,其中包含所选集合的内容(如果需要,可以转储整个数据库)。

如果附加--csv--fields fieldname1,fieldname2,则可以转储一个漂亮的CSV文件,以便与其他程序一起读取。

最新更新