GIT上的SSIS解决方案?

12

我找不到很多关于使用哪个版本控制管理SSIS项目的资源。将SSIS项目放在GIT仓库中算是一种“合适”的做法吗?还是有其他(更好的)解决方案适用于这种类型的项目。我熟悉git,但我不确定它如何与SSIS配合工作,因为它主要是UI部分,我不知道将其放在git上是否会影响任何内容,还需要注意哪些方面等等。


3
我们使用TFS,并将SSIS包视为二进制文件。合并SSIS包或在没有适当谨慎的情况下编辑XML是破坏SSIS包的绝佳方式。 - Eric Hauenstein
2个回答

19
相反,SSIS的接口通常是通过UI实现的,但其核心是大量的XML。
因此,您可以和应该对SSIS解决方案进行版本控制,就像您应该对开发的任何内容进行版本控制一样。无论是“纯”XML还是我们在SSIS中获取的XML:描述工作流程的XML以及嵌入在其中的描述GUI元素布局的XML,合并XML都很困难。这种混合布局和工作导致在合并SSIS包时出现许多冲突。有一些工具(如BIDS Helper)试图提供"智能差异"。我发现它有助于确定"这个数据流改变了",但除此之外,我将SSIS包视为源代码控制中的二进制对象。
无论您使用Git、Mercurial、SVN、CSV、RCS、Perforce、TFS、SourceSafe或其他任何工具,在对版本控制类型的内容进行版本控制方面都是100%无关紧要的。

自从GitHub被SSIS收购以来,有没有任何进展?希望这些工具之间能够更好地集成。 - ColinMac
2
@ColinMac 不好意思,目前来看,微软似乎不再有兴趣在SSIS上投入更多的工程资金。虽然他们已经将其支持添加到Azure数据工厂(ADF)中,但它作为一个产品还会存在一段时间,但这也是微软正在寻求实现数据移动货币化的地方。 - billinkc
我认为这个答案含糊不清。你是说_SSIS包不是源代码(纯文本),而是压缩二进制文件,因此将它们放入SCM是浪费时间/精力_,还是你的意思是_尽管对SSIS进行SCM很困难,但只需使用SCM_? - Rajesh Swarnkar
@RajeshSwarnkar 是的,对你的包进行版本控制。做任何不足以专业的事情都是不专业的。SSIS包是XML,因此它是一个文本文件。然而,由于它是XML,生成包版本之间的差异通常没有帮助,因为等效结构将在差异报告中显示更改。例如,<root><a/><b/></root><root><b/><a/></root>不同。SSIS可以选择以两种方式编写“相同”的包。从逻辑上讲,它们代表相同的信息,但从物理上讲,它们是不同的。SSIS在版本控制中:是的,请这样做,但差异报告可能是无用的。 - billinkc
@billinkc。我认为将软件包视为二进制文件的处理方式包括:1.不能独立处理软件包(因为您可能会忘记合并分支),2.要将分支的VSS解决方案带回主分支,需要将开发解决方案复制到其他地方,然后检出主分支并完全替换主VSS解决方案。 - Jai Jeffryes
@JaiJeffryes 我认为你的总结是准确的。把它当作二进制处理,因为文本合并会导致包损坏。 - billinkc

0

我不喜欢将SSIS(和SSRS)文件放入git,因为它们无法合并。

TFS中,我可以使用锁定来防止其他开发人员在同一包上工作。 在git(VSTS with git)中,我无法使用锁定防止其他人编辑同一包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接