多开发人员环境的 SVN 数据库版本控制

Posted

技术标签:

【中文标题】多开发人员环境的 SVN 数据库版本控制【英文标题】:SVN database versioning for multiple developers environment 【发布时间】:2011-09-16 09:15:00 【问题描述】:

我想知道是否存在使用 SVN 对数据库进行版本控制的方案,这将确保在少数开发人员尝试同时提交更改时不会发生冲突。

我和我的团队一直在使用模式版本号不断增加的变更脚本(类似于此解决方案:http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-change-scripts.aspx)。

这是一个很好的解决方案,但它的主要缺陷是当多个开发人员尝试提交具有相同架构编号的更改脚本时可能会发生冲突——这不仅是一个简单的 SVN 冲突,而且还需要有冲突的用户手动更改具有架构版本的数据库表,还原其数据库更改,更改脚本文件的编号以进行所有数据库更新。是否有可能避开这些障碍?我不仅仅指技术解决方案,但也许有更好的方法来组织这项任务?有任何想法吗?

【问题讨论】:

【参考方案1】:

其中一些技术 + 链接可以帮助您。

来自 SO:

Versioning SQL Server database

Mechanisms for tracking DB schema changes

技术:

http://www.jilles.net/perma/2003/10/17/database-versioning-techniques/

http://martinfowler.com/articles/evodb.html

【讨论】:

【参考方案2】:

Rails 通过使用时间戳而不是递增的版本号解决了这个确切的问题。两个用户在同一秒内创建新架构版本的几率非常低。

【讨论】:

谢谢,也许这不是一个完美的解决方案,但可能就足够了。我会尝试在我的情况下实现它。

以上是关于多开发人员环境的 SVN 数据库版本控制的主要内容,如果未能解决你的问题,请参考以下文章

多开发人员环境中 PFX 文件的最佳实践

您如何在协作的、受版本控制的环境中处理 Oracle 包?

SVN基本概念

话说 SVN 与 GIT 的区别

SVN服务的模式和多种访问方式 多种访问原理图解与优缺点

使用Git管理代码版本