How to configure SSIS 2012 project to run under different environment configurations?

frictionlesspulley picture frictionlesspulley · Mar 4, 2013 · Viewed 46.6k times · Source

What would be the best logical way of configuring 2012 SSIS project using the Project Deployment Model?

Consider a scenario of an SSIS Project MyImport-Project having three packages

Project solution:

  • MyImport-Project
    • Import-Package-01
    • Import-Package-02
    • Import-Package-03

Project Variables:

  • Project-DBConnString : used by all packages to connecting to a single database.
  • Project-FolderPath : used by all packages to lookup input files

Environments:

The project gets deployed on

  • QA server
  • Staging server
  • Production server

Is there a standard method of configuring project parameters ?

I saw quite a few articles on Configuration Files for packages. Is there a way to configure Project Parameters depending on the deployment environment ?

Answer

user756519 picture user756519 · Mar 4, 2013

SSIS 2012 project deployment model provides greater flexibility to create Environments and configure environment specific values, which can mapped to project parameters. Here is a sample that illustrates how you can execute a package deployed to Integration Services Catalog against multiple environments. Ideally, production environment should be on its own server. This example uses all the environments on the same server for simplicity.

SSIS 2012 Integration Services Catalog with environment specific values:

Let's assume that you have deployed a package to Integration Services Catalog with two project parameters named Environment and FilePath. To run the package under different environments, you can create multiple environments under Integration Services Catalogs \ SSIDB \ Folder name \ Environments

This sample has three Environment folders named DEV, PRD and TST

Environment Folders

To create variables that should later be mapped to the project parameters, double-click the environment under the Environments folder. This samples shows how to configure values in all environments.

Since, the package has two project parameters named Environment and FilePath, we will create two environment variables of the same name. All the environments are configured with same variable names but with different values.

DEV Environment

TST Environment

PRD Environment

To map the environment variables to the project parameters, right-click on the project under the Integration Services Catalog and click Configure...

Project Configure

On the Configure dialog, click References page and add each environment which should be associated with the project.

Configure References

On the Configure dialog, click Parameters page. For each parameter listed under Parameters tab, you need to click the Ellipsis button to map the appropriate environment variable.

Configure Parameters

On the Set Parameter Value dialog, select Use environment variable radiobutton and choose the appropriate variable. Here the parameter being mapped is [Practice.SSDT].[Environment]. Hence, it is being mapped against the environment variable Environment.

Set Parameter Value

Once you have mapped the parameter against the appropriate environment variable, you can choose the correct environment during package execution. To execute the package, right-click on the package and click Execute...

Execute Package

On the Execute Package dialog, check Environment box and select the appropriate environment from which the package should use the values for execution.

Execute Package

The sample package SO_15206184.dtsx in this example simply inserts the values of project parameters Environment and FilePath into a table. Here are the results of the package execution against different environments, even the one including from within SSDT.

Package Execution Results