我使用github对我的文件进行版本化,我也想对我的数据库进行版本化。在这种情况下,这只是为了测试目的。
但是mongodb创建的数据库文件没有更改,文件更改的数据是几周前的:因此github有旧数据。。
我真的不明白为什么如果我更改数据库中的一些数据,mongodb不保存到文件中。。。或者至少文件一定是以某种方式更改了。。
MongoDB预先分配数据文件,然后逐渐填充。也许这就是为什么变化没有被正确地接受的原因。
顺便说一句,在所有可能的MongoDB数据库版本控制方法中,我不确定将datadir本身保存在Git存储库中是否是最好的方法。
备选方案:运行mongodump
将导致数据库或集合的BSON
转储,而运行mongoexport
将导致JSON
或CSV
。两者都可以通过mongorestore
和mongoimport
读取,请参阅文档。
然后可以使用您最喜欢的工具对这些转储进行版本控制。就我个人而言,在使用Git时,我会对JSON转储进行版本化,例如
mongoexport --db mydatabase --collection mycollection > mycollection.json
将生成一个JSON文件,其中包含所选集合的内容(如果需要,可以转储整个数据库)。
如果附加--csv
和--fields fieldname1,fieldname2
,则可以转储一个漂亮的CSV文件,以便与其他程序一起读取。