【发布时间】:2011-06-28 17:49:05
【问题描述】:
我们有大量的 SSIS 包,它们处理指定根“数据”文件夹位置中的文件并将其加载到指定的目标数据库。
当然,根输入文件夹在开发和生产环境中会发生变化,目标数据库也是如此。
对于特定的输入文件,我们可能在根 Data 文件夹之外有一个子文件夹,但 Development 中的文件目录结构与生产相匹配;只有根文件夹位置不同。
我可以轻松地拥有一个 DtsConfig 文件来控制数据库连接,方法是根据文件是在开发环境中还是在生产环境中更改该文件的内容。
关键部分: 但是,文件的 ConnectionStrings 并不那么简单。理想情况下,我希望能够以 %RootFolder%\SourceSystemA\HardCodeFileName.txt 的形式指定文件 Connectionstring 路径,其中 %Rootfolder% 因环境而异。
但是,除了编写脚本来在运行时修改包(我还没有看到任何示例)或以编程方式创建整个包,我认为这无法完成。似乎不支持以这种方式使用环境变量仅应用于包属性的一部分。 (试试看!)似乎也不支持相对路径(尽管我们的文件位于不同的驱动器上,所以这可能没有帮助。)
不确定我所理解的“DRY”原则是否与此处相关,但基本上,我想将那些静态的东西与那些变化的东西分开,并允许在一个地方轻松更新并让它适用于任何地方。
如何做到这一点?
【问题讨论】:
标签: visual-studio-2008 visual-studio-2005