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