2

我已经设置了一个包配置,其中配置类型为(间接 XML 配置文件)。环境变量指向C:\SSIS\MasterConfig\MasterConfig.dtsConfig文件的位置。

这很好用,可以轻松地从测试迁移到 UAT 再到生产。

问题出在我们的开发环境中,每个开发人员都有自己的数据库。我正在尝试为代理作业将覆盖主配置文件的每个开发人员设置一个代理作业。代理作业命令行是“:

/FILE "C:\SSIS\Packages\Developer1\LoadPackage.dtsx" /CONFIGFILE "C:\SSIS\Packages\Developer1\Developer1_Config.dtsConfig" /X86 /CHECKPOINTING OFF /REPORTING E

使用 2008 R2。

我期待使用 /CONFIGFILE "C:\SSIS\Packages\Developer1\Developer1_Config.dtsConfig" 代替 C:\SSIS\MasterConfig\MasterConfig.dtsConfig 文件。

仅使用主配置文件。有任何想法吗?

4

2 回答 2

0

定义集成服务包的配置方法中涵盖了您遇到的问题。基本上,命令行配置正在应用,但随后被设计时值覆盖。

我不确定你的解决方案是什么。除了我们必须处理多实例盒子(开发和测试共享一个物理主机)之外,这里的情况半相似。为了解决这个问题,我们跳过了环境变量位,并决定设计时值总是指向 dev。测试、UAT 和 PROD 将仅通过 SQL 代理运行包,因此我们的作业明确定义配置资源的连接字符串。不过,您的情况是倒退的,设计时值在任何地方都很好,但开发人员除外。

于 2012-05-30T19:05:41.653 回答
0

这就是我们所做的。

无论是指向生产、QA 还是开发(甚至是本地),所有变量的名称都相同。我们改变的是指向配置文件的变量值。

我们创建配置文件,其中包含每个盒子的所有适当连接信息。所以我们将为每个数据库至少有 3 个单独的配置文件。我们将它们命名为 DB_Prod.config、DB_QA.config、DB_Dev.config,然后是 DB_Joe_local.config(如果您想要一个指向本地 db.config 的文件)。

然后我们创建 .bat 文件,将我们的变量设置为正确的环境。我有 3 个不同的,一个用于 QA,一个用于开发,一个用于我的本地环境。

环境变量将命名为 DB1_adonet、DB1_ole、AS400 等。没有 QA、prod 等指示。

设置起来有点麻烦,但是一旦开始使用它,唯一的问题就是记住您为自己设置的环境。此外,您需要记住,当缓存值时,您需要在环境更改之间打开和关闭开发工作室。此外,如果您碰巧在本地运行包,它将使用您的环境变量值,而不是您运行它的框。

最后一点,我们已将所有配置文件签入 TFS。便于分发文件。

于 2012-05-31T23:41:39.093 回答