4

我将所有 SSIS 包以及它们的配置文件都存储在 Subversion 存储库中。配置文件几乎总是存储在包所在的同一文件夹中。

问题是 - SSIS 似乎总是将配置文件的路径(保存在包本身中的那个)存储为绝对路径。

当其他人在与我在开发 PC 上的位置不同的位置检出包含包的文件夹时,未检测到配置文件(因为存储了我的绝对路径,并且它在另一台开发 PC 上不存在)。因此,另一个开发人员必须删除此配置,然后从其本地硬盘驱动器上的位置重新添加它。然后保存更改的包,这将导致提交新版本。当我从 SVN 获得该版本时,它将不再匹配我 PC 上的本地路径。

在相关说明中:另一个开发人员可能也想更改配置文件中的值。如果我以后从 SVN 包中获得最新版本的所有内容,我的 PC 将不再工作。

您如何解决这些不便?

4

3 回答 3

4

另一种解决方案是将您的配置保存在数据库中,并使用环境变量作为第一个配置来告诉它要查看哪个数据库,这就是我们所做的。我们有脚本来为源代码控制中的每个服务器填充 ssisconfig,但该包使用我们正在使用的环境变量中的数据库的实际表数据。

于 2012-06-12T19:14:17.823 回答
3

任何听过我的 SQL 星期六演讲的人都知道我不太关心 XML,这也是原因之一。使用具有不同位置的 XML 配置的一个技巧是使用环境变量(间接配置)来指导 SSIS 在哪里可以查找该资源。这种方法最大的缺点是您通常需要为每组配置文件创建一个环境变量,或者拥有一个庞大的 .dtsconfig 文件,这对于版本控制来说变得很痛苦。

如果 XML 配置是必须的,我更喜欢的选项是删除“可变性”。开发人员和管理员聚在一起,每个人都同意“在 SSIS 完成的任何地方都会有一个文件夹来保存配置文件,并且该位置是 X”,然后只需解决 X 的问题。在以前的工作中,我们使用 D:\ssisdata \配置

@HLGEM 的配置表方法是我最喜欢的 SSIS 配置方法(直到您到 2012 年及其项目部署模型,其中配置是完全不同的动物)

于 2012-06-12T20:34:48.533 回答
1

我在我的项目文件夹下添加了一个名为“config”的文件夹,将其添加到源代码管理并在此文件夹中维护配置文件。如果您愿意,也可以将其添加到 SSIS 项目中。

我认为这是一个很好的解决方案,因为每个人都可以拥有这个文件夹并下载配置文件。

部署包时,它将从您在部署清单中通知的位置读取配置文件,因此此解决方案不会影响您的开发

于 2012-06-12T18:48:35.687 回答