首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库中是否有用于版本控制的通用选项?

问数据库中是否有用于版本控制的通用选项?
EN

Stack Overflow用户
提问于 2010-03-10 03:08:44
回答 4查看 242关注 0票数 5

我在我的开发项目中使用SVN的经验很少,在关系数据库方面的经验也很少。我知道表和SQL语句等基本概念,但我还远不是专家。

我想知道的是,是否有像SVN这样的通用版本控制类型的系统,但它们使用数据库而不是文件。我想要与SVN一样的特性,比如创建分支、创建标签和合并分支的能力。修订号不是与文件存储库的版本相关联,而是与数据库的版本相关联。

他们是否有任何通用的解决方案可以添加这种独立于实际数据库模式的功能?我会对使用MySQL或MS SQL Server的解决方案感兴趣。

我还应该澄清的是,我正在尝试对数据进行版本控制,而不是模式。我希望模式保持不变。因此,实际上我似乎需要一种方法来创建日志,记录每个版本数据之间发送给数据库的所有INSERT、UPDATE和DELETE请求。这样,通过重新发送保存到所需版本的所有SQL语句,就可以重新创建任何版本。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-10 03:12:39

您可以将所有的DDL、存储过程等编写成常规的文本文件。

然后,您可以简单地使用SVN进行数据库版本控制。

票数 1
EN

Stack Overflow用户

发布于 2010-03-10 03:15:20

我从来没有找到过像Subversion一样好用的解决方案,但我做了一些有用的事情:

  1. 生成将创建架构并填充任何初始数据的脚本。然后为之后的每个更改创建一个更新脚本。这是一个相当手动的过程,但它是有效的。还有一些额外的功能可以帮助你,比如将当前的版本号存储在数据库中的表中,并确保脚本是Subversion中的完整开发数据库idempotent.
  2. Store。对于我来说,如果有大量的数据或者数据经常被更改,这通常不会很好地工作。但在一些项目中,这是可行的。
票数 1
EN

Stack Overflow用户

发布于 2010-03-10 03:12:41

我能想到两件事:

  • http://www.liquibase.org/ -提供了一种一般管理数据库更改的方法。创建提交到源代码控制中的文件,它有助于管理跨不同开发数据库的更改,etc.
  • http://www.viget.com/extend/backup-your-database-in-git/ -这描述了一种将数据库备份到源代码管理中的策略,但相同的策略可以仅在架构上使用。在此方案中,数据库将位于与主代码不同的区域中。(这也可以用于其他源代码控制系统。)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2411791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档