1

我使用 github 对我的文件进行版本控制,我也想对我的数据库进行版本控制,在这种情况下仅用于测试目的。

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

我真的不明白为什么如果我要更改数据库中的某些数据,mongodb 不会保存到文件中……或者至少文件必须以某种方式更改……

4

1 回答 1

1

MongoDB预先分配数据文件,然后逐渐填充。也许这就是为什么没有正确获取更改的原因。

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

替代方案:运行mongodump将导致BSON您的数据库或集合的 -dump,而运行mongoexport将导致JSONor CSV。两者都可以用mongorestoreand读回mongoimport,请参阅文档

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

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

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

额外的东西,如果你附加--csvand --fields fieldname1,fieldname2,你可以转储一个漂亮的 CSV 文件,用另一个程序读入。

于 2012-07-25T22:07:04.490 回答