gpt4 book ai didi

git - MongoDB 备份为文本而不是用于源代码控制的二进制文件

转载 作者:可可西里 更新时间:2023-11-01 09:14:23 34 4
gpt4 key购买 nike

这有可能吗?

我问的原因是,执行备份作为预提交 Hook 似乎很有用,并以某种方式将基于文本的备份包含在提交的代码中,这样源代码管理 (git) 中的每个修订版都有与之相关的必要备份。

我意识到可以让 MongoDB 将其所有集合作为 JSON 输出,并以这种方式备份它们,但这不会包含数据库和集合元数据。

主要关注点是,当分支以更改服务器端代码,然后恢复该分支时,我们很容易忘记进行必要的备份以允许有效恢复(代码将不再匹配模式)。有人可能会说这是程序员的错误,但我认为应该有一些自动化措施来确保我们拥有的数据库版本对于每个代码版本都是最新的。这是项目早期无定形模式的问题……动态模式是 Mongo 的主要祝福和诅咒。

最佳答案

MongoDB 将其数据存储在 BSON (Binary JSON) format 中因此,如果您要转换为纯文本格式,您应该注意潜在的 data type fidelity问题。如果你想对你的 MongoDB 数据库进行一致的备份,推荐的格式是 mongodump 的二进制输出。 .不过,我不建议使用二进制数据库备份来膨胀你的 git 存储库。

通常,具有架构灵 active 的数据库的解放方面之一是不必在开发过程中担心架构迁移。这确实需要考虑您的应用程序将如何处理不同的模式版本,因此采用更受控制的方法也很好。

由于您的主要目标是使数据库模式与代码更改保持同步,因此更好的方法是研究模式迁移工具。这些通常允许您创建具有定义的数据库应用程序顺序的升级/降级代码片段,并确保您的应用程序代码未处理的数据库模式的任何更改都在迁移脚本。

一些示例工具:

关于git - MongoDB 备份为文本而不是用于源代码控制的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20814866/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com