【问题标题】:Are there any databases that support branches?有没有支持分支的数据库?
【发布时间】:2012-05-20 07:18:45
【问题描述】:

我真正需要的是可以进一步修改的轻量级数据库快照。

数据库可能很大,但快照本身应该很小并保持与父级的关系。

这样的东西基本上可以让我每个分支都有一个数据库。它也可以用于测试几乎直接针对生产的环境,但不会影响它。

我对关系数据库实现或扩展最感兴趣。但对任何事情都持开放态度。

【问题讨论】:

  • 了解您当前使用的数据库系统或您熟悉的数据库会有所帮助。理想的答案可能是主流 RDMS 的插件,因此对于 MS SQL Server、Oracle、MySQL 等,您可能会得到非常不同的答案。
  • 我主要使用mysql等免费数据库。

标签: database branch relational-database branching-and-merging


【解决方案1】:

我认为任何 RDBMS 都不存在分支;您可以获得的最接近的方法是通过备份和还原或批量插入到新数据库中克隆整个数据库。

您可以尝试通过为每个分支克隆目标数据库的架构并在其中存储“差异”(即已编辑的记录)来滚动您自己的分支系统,但这需要跨两个数据库进行查询、解决编辑冲突和降序在插入或删除记录的时候进入一个独特的地狱循环。

就我个人而言,我只会使用完整/部分克隆进行主要测试,并使用较小的子集用于您正在编辑架构的分支。

【讨论】:

    【解决方案2】:

    想法:我还没有看到包含分支概念的关系数据库系统......尽管这个概念本身似乎非常有用恕我直言。

    我知道 Microsoft Team Foundation Server + Visual Studio 2010(仅限高级版或旗舰版)通过“数据库项目”将数据库开发与源代码控制集成在一起。我确信其他版本控制系统具有类似的功能......但这并不能回答您对轻量级或内置数据库版本控制系统的问题。 (因此,这在技术上不是答案 - 只是一些可以帮助您解决基本问题的信息)。

    简单搜索发现了一些有用的相关文章,但似乎无法准确回答此请求:

    1. RedGate SQL Source Control 3.0
    2. "Versioning Databases - Branching and Merging" - OdeToCode.com 2008

    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 源 控制不是源代码控制系统;它允许您存储您的 现有源代码控制系统中的数据库。

    【讨论】:

    • 如果是在没有额外存储要求的情况下创建新的 SQL Server 数据库,创建一个或多个虚拟数据库可能是最佳选择。这会挂载一个备份文件,而不是数据库。 red-gate.com/products/dba/sql-virtual-restore
    【解决方案3】:

    我创建了LiteTree

    它是对 SQLite 引擎的修改,以支持分支。

    【讨论】:

      猜你喜欢
      • 2022-12-04
      • 2012-02-06
      • 2014-05-22
      • 2015-01-21
      • 2012-10-27
      • 2012-10-06
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多