我真正想要的是相当于可以进一步修改的轻量级数据库快照。
数据库可能很庞大,但快照本身应该很小并且与父级保持关系。
这样的东西可以让我基本上拥有每个分支的数据库。它也可以用于测试几乎直接针对生产的环境,但不会影响它。
我最感兴趣的是关系数据库实现或扩展。但是会对任何事情持开放态度。
答案 0 :(得分:0)
我认为任何RDBMS都不存在分支;关于你可以得到的最接近的是通过备份和恢复或BULK INSERTING到新的数据库来克隆整个数据库。
您可以尝试通过克隆每个分支的目标数据库模式并在其中存储“差异”(即编辑的记录)来滚动您自己的分支系统,但这将需要跨两个数据库查询,解决编辑冲突和降序当插入或删除记录时,进入一个独特的地狱圈。
就个人而言,我只是使用完整/部分克隆进行主要测试,使用较小的子集进行编辑模式的分支。
答案 1 :(得分:0)
思考:我还没有看到一个包含分支概念的关系数据库系统......虽然这个概念本身似乎非常有用恕我直言。
我知道Microsoft Team Foundation Server + Visual Studio 2010(仅限Premium或Ultimate版本)通过“数据库项目”与源代码控制进行数据库开发集成。我敢肯定其他版本控制系统具有相似的功能......但这并不能解决您对轻量级或内置数据库版本控制系统的疑问。 (因此,这不是技术问题,而是一个答案 - 只是一些可以帮助您解决基本问题的信息。)
简短搜索找到了一些有用的相关文章,但似乎没有完全回答这个要求:
RedGate是一家顶级数据库工具公司,为Microsoft SQL Server,Oracle以及其他可能的数据库解决方案开发解决方案。问题在于RedGate SQL Source Control 3.0能够在SSMS(Microsoft SQL Server Management Studio)中使用您的版本控制系统,但它本身不是DB VCS(版本控制系统)。 摘自他们的网站:
SQL Source Control是SQL Server Management Studio的一个加载项 让您将数据库导入源代码管理。 SQL源代码管理 因此带来了变革管理和协作的好处 源控制到数据库开发,而不影响你的 工作流程,或需要新的开发过程。注意:SQL Source 控制不是源控制系统;它允许您存储您的 现有源代码管理系统中的数据库。
答案 2 :(得分:0)
我创建了LiteTree
这是对SQLite引擎的修改,以支持分支。