我将所有SSIS包存储在Subversion存储库及其配置文件中。配置文件几乎总是存储在包所在的同一文件夹中。
问题是 - SSIS似乎总是存储配置文件的路径(保存在包本身中的路径)作为绝对路径。
当其他人在与我在开发PC上的位置不同的位置检出包中的文件夹时,未检测到配置文件(因为我的绝对路径已存储且在其他开发者PC上不存在)。因此,另一位开发人员必须删除此配置并从现在位于本地硬盘驱动器上的位置再次添加。然后保存更改的包,这将导致提交新版本。当我从SVN获得该版本时,它将不再与我的PC上的本地路径匹配。
在相关说明中:另一位开发人员可能也想要更改配置文件中的值。如果我以后从SVN软件包中获取最新版本的所有内容将无法在我的PC上运行。
你如何解决这些不便?
答案 0 :(得分:4)
另一种解决方案是将配置保存在数据库中,并将环境变量作为第一个配置告诉它要查看的数据库,这就是我们的工作。我们有脚本为源代码管理中的每个服务器填充ssisconfig,但是软件包使用我们正在使用的环境变量中的数据库的实际表数据。
答案 1 :(得分:3)
任何听过我的SQL周六演讲的人都知道我不太关心XML,这也是原因之一。使用具有不同位置的XML配置的一个技巧是使用环境变量(间接配置)将SSIS定向到可以查找该资源的位置。这种方法的一个重大缺点是你通常需要为每组配置文件创建一个环境变量,或者有一个庞大的,鸣喇叭的.dtsconfig文件,这对于版本控制来说很痛苦。
如果必须使用XML配置,我更喜欢的选项是删除“变量”。开发人员和管理员聚在一起,每个人都同意“在任何地方都会有一个文件夹来完成SSIS以保存配置文件并且该位置是X”然后它只是解决X的问题。在之前的工作中,我们使用了D:\ ssisdata \ CONFIGS
@ HLGEM的配置表方法是我最喜欢的SSIS配置方法(直到你到2012年和他们的项目部署模型,其中配置是一个完全不同的动物)
答案 2 :(得分:1)
我在我的项目文件夹下添加一个名为“config”的文件夹,将其添加到源代码管理并保存此文件夹中的配置文件。如果您愿意,也可以将其添加到SSIS项目中。
我认为这是一个很好的解决方案,因为每个人都可以拥有此文件夹并下载配置文件。
当部署软件包时,它将从您在部署清单中通知的位置读取配置文件,以便此解决方案不会影响您的开发