2012-05-30 90 views
1

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

这个工作很好,并允许从测试到UAT轻松迁移到生产。

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

/FILE ”C:\ SSIS \包\ Developer1 \ LoadPackage.dtsx“/ CONFIGFILE ”C:\ SSIS \包\ Developer1 \ Developer1_Config.dtsConfig“/ X86 /OFF检查点/报告Ë

使用2008 R2

我期待的是,/ CONFIGFILE “C:\ SSIS \ \包Developer1 \ Developer1_Config.dtsConfig” 将是代替使用 的C:\ SSIS \ MasterConfig \ MasterConfig.dtsConfig文件。

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

回答

0

您遇到的问题在Defining a Configuration Approach for Integration Services Packages下涵盖基本上,命令行配置正在应用,但被设计时间值覆盖。

我不确定你的解决方案是什么。除了我们必须处理多实例化框(dev和test共享一个物理主机)之外,这里有类似的情况。为了解决这个问题,我们跳过了环境变量位,并决定设计时的值总是指向dev。测试,UAT和PROD只会通过SQL代理运行包,所以我们的作业显式定义连接字符串到配置资源。尽管如此,设计时间的价值无处不在,只是开发。

+0

谢谢你的回应。这里要做的最简单的事情是:1.让SSIS开发人员使用本地数据库,其中没有人会共享他们的环境变量。 2.让开发人员很好,轮流使用共享数据库。 – taaSarge

0

这就是我们所做的。

无论指向Production,QA还是Dev(甚至是本地),所有变量的命名都相同。我们改变的是指向配置文件的变量值。

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

然后,我们创建.bat文件,设置了变量的我有三个不同的,一个用于QA,一个用于开发,另一个用于我的本地环境。

环境变量被命名为诸如DB1_adonet,DB1_ole,AS400等。没有QA的指示, prod等

这是一个轻微的痛苦的屁股设置,但一旦你开始使用它,唯一的问题是记住你设置自己的环境,而且,你需要记住,你需要打开和关闭开发工作室b在缓存值时环境发生变化。另外,如果你碰巧运行一个locale包,它将使用你的环境变量值,而不是你正在运行它的盒子。

最后说明,我们已将所有配置文件签入到TFS中。使文件易于分发。