Git MongoDB备份作为文本而不是二进制进行源代码控制
有可能这样做吗 我询问的原因是,将备份作为预提交挂钩来执行似乎很有用,并以某种方式将基于文本的备份包括在提交的代码中,以便源代码管理(git)中的每个修订版都有与之相关联的必要备份 我意识到,可以让MongoDB将其所有集合作为JSON输出,并以这种方式进行备份,但这样就不会包含DB和集合元数据Git MongoDB备份作为文本而不是二进制进行源代码控制,git,mongodb,version-control,automation,Git,Mongodb,Version Control,Automation,有可能这样做吗 我询问的原因是,将备份作为预提交挂钩来执行似乎很有用,并以某种方式将基于文本的备份包括在提交的代码中,以便源代码管理(git)中的每个修订版都有与之相关联的必要备份 我意识到,可以让MongoDB将其所有集合作为JSON输出,并以这种方式进行备份,但这样就不会包含DB和集合元数据 中心问题是,当分支对服务器端代码进行更改,然后恢复该分支时,我们很容易忘记进行必要的备份,以便进行有效的恢复(代码将不再与架构匹配)。有人可能会说这是程序员的错误,但我认为应该有一些自动化,以确保我们有
中心问题是,当分支对服务器端代码进行更改,然后恢复该分支时,我们很容易忘记进行必要的备份,以便进行有效的恢复(代码将不再与架构匹配)。有人可能会说这是程序员的错误,但我认为应该有一些自动化,以确保我们有一个数据库版本,该版本适用于每个版本的代码。这就是在项目早期没有定形的模式的问题。。。动态模式是Mongo的主要幸灾乐祸。MongoDB将其数据存储在一个文件中,因此如果您要转换为纯文本格式,您应该注意潜在的问题。如果希望对MongoDB数据库进行一致性备份,建议使用的二进制输出格式。不过,我不建议使用二进制数据库备份来扩充git回购 通常,具有模式灵活性的数据库的一个解放方面是在开发过程中不必担心模式迁移。这确实需要考虑应用程序将如何处理不同的模式版本,因此采用更可控的方法也很好 由于您的主要目标是使数据库模式与代码更改保持同步,因此更好的方法是研究模式迁移工具。这些通常允许您创建具有定义的数据库应用程序顺序的升级/降级代码段,并确保在迁移脚本中捕获未由应用程序代码处理的对数据库架构的任何更改 一些示例工具: