设为首页 收藏本站
查看: 754|回复: 0

[经验分享] 原创:通过VS 2010+SVN为SQL Server提供数据库版本管理

[复制链接]

尚未签到

发表于 2015-6-29 15:51:55 | 显示全部楼层 |阅读模式
  对于一个软件企业来说,源代码就是公司全体智慧的结晶,绝不能有任何闪失。但对于公司产品的基石数据库怎么来进行统一管理呢?通常,是直接备份数据库文件的方式,或者生成数据库的部署脚本,来重复的备份。这个方法可行,却有些值得改进的地方。首先,太繁琐了,浪费精神;其二,不方便和其它项目同时管理。下面,就介绍我偶然看到的方法,当然,可能有很多人已经这么做了,但分享给那些还不知道的人。
  大体思路:

  • VS 2010 提供了一个项目类型,新建->数据库->SQL Server 2005 数据库对象 或 SQL Server 2008 数据库对象,完整的提供了SQL Server 的定义创建和生成部署脚本功能。
  • 通过VS 2010下的数据->架构比较(Schema Compare)能将SQL Server数据库和SQLServer数据库项目差异比较出来,并提供双向同步功能。
  • Subversion,提供基于文本的SQL语句版本管理支持。
  
本示例采用VisualSVN-Server(Subversion 服务器)、AnkhSvn(VS 2010的Svn 插件)、SQL Server2005、VS 2010,示例数据库为AdventureWorks。


因为安装的是英文版的VS2010,大家就对应着中文的看吧。


第一步:通过VS  2010 创建数据库项目。打开VS 2010,File->New->Project,在Recent Templates中选中Database->SQL Server,并在右面的项目类型中选中SQL Server 2005 Database Project,输入项目名称,并点击OK。

DSC0000.jpg

第二步:在新建的ExampleSystemSQL项目上点右键,选中菜单中的Import Database Objects and Settings,

DSC0001.jpg

会弹出一个对话框,让我们选择数据库。可以通过Tools->Connect to Database创建。为了简单,就直接选已有的AdventureWorks连接。

DSC0002.jpg

单击Start就开始将SQLServer2005中数据库AdventureWorks的定义取回到项目中来。

DSC0003.jpg

点击Finish,就可以看到AdventureWorks的定义了。

DSC0004.jpg

第三步,将整个项目添加到版本管理中。事先已在一台服务器上安装了VisualSVN-Server-2.5.8,并创建了一个库叫Unique,SVN地址是:https://server2003/svn/unique。同样,选中ExampleSystemSQ项目点右键,选择里面的Add Sulution to Subversion…

DSC0005.jpg

在弹出的对话框中输入Repository Url,https://server2003/svn/unique,如下图,并点击OK。如果需要认证的话,就输入在VisualSVN-Server中建立的用户名和密码。

DSC0006.jpg

在弹出的日志输入对话框中直接点击OK。刚才的步骤只是把项目添加的svn副本的本地,还没有提交,所以需要再次在解决方案上点右键,选中Commit Solution Changes,输入日志,点击OK,就行了。

DSC0007.jpg


至此,我们为AdventureWorks数据库创建了版本管理,那如果我们修改了AdventureWorks呢,该怎么实现同步呢,下面,就是VS 2010的强大之处了。首先,在AdventureWorks中创建了一个新表名字叫dbo.Table_1。再打开VS 2010中的Data->Schema Compare(架构比较)-> New Schema Comparison,配置源数据库和目标项目,如下图所示。Source Schema选择数据库,Target Schema 选择Project ExampleSystemSQL项目。

DSC0008.jpg

点击OK,VS 2010就开始进行架构比较,结果如下图:

DSC0009.jpg

可以看到刚刚新建的表Table_1,在空白处,点击右键,选择Write Updates,在确认对话框中点击OK,就会把新建表Table_1的定义保存到项目中。

DSC00010.jpg

马上,就可以在VS项目中看到新添加的Table_1的SQL脚本文件了。

DSC00011.jpg

接下来,就可以将更新的脚本提交到SVN中,与普通的C#项目没什么差别。


值得注意的一点是,在VS 2010 项目ExampleSystemSQL中,可以直接添加新表的定义,再同步到AdventureWorks数据库中,也是通过Data->Schema Compare(架构比较)->New Schema Compasion来实现的。同步是双向的。VS 2010 可以对ExampleSystemSQL项目生成部署脚本。

转载请注明作者博客地址:http://www.iyunv.com/ProJKY

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-81613-1-1.html 上篇帖子: SQL SERVER的锁机制(二)——概述(锁的兼容性与可以锁定的资源) 下篇帖子: SQL SERVER 2005中的Schema详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表