【发布时间】:2023-03-03 19:55:01
【问题描述】:
我有一个项目需要对数据存储进行版本控制(例如在 git 或 svn 中)。需要明确的是,我的意思是数据存储的 contents 版本控制,而不是模式。我们将拍摄数据本身的快照,例如能够恢复到以前的状态。还需要分支和合并。
基本要求是:
- 每个数据存储都可以驻留在自己的目录(存储库)中
- 可以合并不同版本的数据内容(手动或使用工具)
- 能够运行基本的选择查询来制作可视化报告
理想情况下:
- 并发访问安全
- 一定程度的关系完整性
我查看了各种选项。 SQLite(二进制格式)很难合并。 CouchDB 具有很大的合并可能性(多主复制),但不允许每个数据存储使用不同的目录。纯 JSON 或其他文本文件使查询和关系变得困难。
有没有可以通过这种方式进行版本控制的数据存储格式?你会如何解决这个问题?
编辑(更多上下文):具体用例是实现分布式软件问题跟踪,其风格与Fossil SCM 类似。但是,虽然我对解决此问题的现有工具感兴趣,但我对探索和理解可用于构建此类工具的不同数据存储选项特别感兴趣。
【问题讨论】:
-
这是一个非常有趣的问题。
标签: database version-control version datastore