我们在开发团队中有10名成员,他们正在构建windows应用程序,我们正在使用team foundation server进行源代码管理。
应用程序使用sql server,sql server将在客户的服务器计算机上。
我想问的是,开发人员在创建表或存储过程时如何更新脚本。以及如何处理冲突?
发布于 2014-06-03 18:34:09
当你使用像entity framework或nHibernate这样的ORM时,你不应该创建表更新脚本(除非你必须将数据从一个列/表移动到另一个列/表),如果你告诉它(这是我的代码中仍然有nHibernate的唯一原因),框架应该为你做这件事,通常是在应用启动时,但你也可以将这个功能转移到手动调用的外部程序中(警告:容易出错)。
而且你应该始终使用数据库优先的方法,因为你的数据结构比你的代码重要得多。
存储过程、函数和视图您只需将它们全部删除并重新创建它们(按依赖关系的顺序),其他所有的工作都太繁重且太容易出错。SSMS有为删除/创建视图/存储过程等创建脚本的功能,但它没有正确的依赖关系顺序,所以您必须手动测试并更正它,除非您编写自己的工具(我推荐它,但它很难-依赖关系解析需要拓扑排序和正则表达式)。
至于修订控制,如果几个人同时在一个数据库上工作,那就是一个问题。
RedGate为SQL-Server / SSMS提供了TFS版本控制集成,不知道他们是否已经为SQL-2012/2014更新了,但我敢打赌他们已经更新了。
为了最大限度地减少冲突,我建议你们在办公室里都在同一个数据库上开发,除非这是不可能的。
https://stackoverflow.com/questions/24012843
复制相似问题