简体   繁体   中英

How git could help me upgrade an SSIS solution from VS2008 to VS2013 while changing

I have a rather big SSIS solution for our DW on a SQL Server 2008R2.

Almost every wekk we touch the existing solution.

At the same time i want to convert the solution to run on the newest SSIS platform for our new SQL Server 2014.

How should i exploit git to help me in both upgrade and incorporating the latest changes from the old solution (master branch)?

I could start by having a new branch like Upgrade/SQL2014 and then go and try to upgrade the solution.

What i should do if a package changes in master branch ?

Problem background (as I see it)

The XML based nature of SSIS makes generating differences difficult but the addition of presentation code into that XML makes it all but a fruitless endeavor. BIDS Helper has a smart diff tool that helps eliminate the presentation "noise" from constructive package changes. However, going from the 2008 SSIS package layout

<?xml version="1.0"?><DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:ExecutableType="SSIS.Package.2">
<DTS:Property DTS:Name="PackageFormatVersion">3</DTS:Property>
<DTS:Property DTS:Name="VersionComments"></DTS:Property>

to a 2014 layout

<?xml version="1.0"?>
<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts"
  DTS:refId="Package"
  DTS:CreationDate="10/1/2014 9:27:13 AM"
  DTS:CreationName="Microsoft.Package"

would tax even the most ardent xlst disciple.

An approach

Biml, the Business Intelligence Markup Language, is an XML language describing, in this case, SSIS. It is version agnostic --- a Data Flow is a Data Flow, from 2005 to 2014.

<Dataflow Name="DFT I am a data flow" />

If you can create the Biml that describes all of your existing 2008 packages, you can then forward generate the 2014 packages by using the correct emitter. Further, if you have changes for a production fix type of issue, you change the Biml in your mainline, generate your 2008 package(s) and then it's standard reconciliation between the main and the branch.

How do I generate the Biml

Download Mist and with that, you get 5 free reverse engineerings. Test out the approach and if you're happy, they have two different licensing models: One is a monthly subscription (~250 USD) and the other is perpetual (~4k USD). Either way, you then reverse engineer all the things in your month, commit the biml to your repository.

How do I make the DTSX?

If you bought Mist, then use Mist. Otherwise, use the free, forward generation capability built into BIDS Helper for 2008 and the pending 2014 release. As of today, you would have to generate 2012 packages which are auto-upgraded when 2014 SSDT-BI opens them up. It's a pain and should be resolved with a new Mist/BIDS Helper release by the end of the year.

Comment to answer lazy paste

BIDS Helper is the free version to generate packages (put out by the same people that create pay-for Mist) Once you have your packages in biml, then you can just use BIDS Helper to make your SSIS packages. Any more, my SSIS answers include the corresponding Biml as it lets people drive my solutions without downloading an explicit package.

I get out of my depth speaking git specific dialect but I was thinking store the biml on your master/trunk/main line and emit your 2008 packages from that. All new dev goes to the branch for 2014 specificness. For the quick and dirty upgrade, I'd leave everything in the Package Deployment Model until you're satisfied you have migrated everything well and there were no version oddities. Then look at adopting the Project Deployment Model. It changes the way you handle logging, configuration and possibly execution but I've found it to be worth the upgrade

You can download the trial version of Mist to get 5 free reverse engineerings out of it, see if you think it'd work with your process.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM