ssis package configuration and deployment - deployment

what is difference between SSIS package configuration and package deployment? what is the difference between 2008 package configuration and 2012 package configuration and also deployment. After creating a package what steps should follow for deploy a SSIS package? what configuration company uses?

Package configuration - This is to make your package dynamic like instead of making your connection manager with static values you can pass them dynamically. You can get the dynamic values from a file or table or environment variables or registry entry. This is done during Development phase.
Package deployment - This is done once your package development is complete. You will not run your package always by opening the BIDS/Data Tool. For that, you need to deploy the packages to some location like to a File path or to a database. You can access/call the packages from the deployed location using a job or command.
2008 vs 2012+
Configuration: In 2012 or higher, you have extra feature like Project level Connection manger, parameters those can be accessed by all the packages with in that project. If any changes is required in connection, you can change it in one place instead of going each.
Deployment: 2012 or hogher, there is a new feature called project deployment model. A new database called SSIDB is created in database engine of the SQL Server. There are lot of feature available like Environments, Folder level Securiy, View logs through reports etc.
More information available in MSDN.
Refer:
SSIS Catalog

Related

Find Task names of an SSIS file or Find xml code of an ssis package from sql server 2019 using T-SQL

there is a Windows Server which runs an SQL Server 2019 instance at my company. I have deployed an Integration services solution (project deployment model) with some SSIS packages. I wondered if there is any way to get data flow task names from the packages, or to get the xml file body in order to extract names by using T-SQL. If none of the above is possible i would like to know in which directory the actual dtsx files are stored in Windows Server when you deploy a solution in SQL Server. I have searched a lot for the above but i cannot find any answer.
Thanks in advance.
How is the package deployed? If it's File System, you could likely do
something like Powershell and SQL. I can't, personally, remember if
packages deployed in msdb are encrypted (I haven't used the deployment
method since 2012), however, if they are deployed via SSISDB you won't
be able to query the packages stored in the database as they are all
encrypted. You'd need to inspect the source packages (in your source
controlled project).
From a comment by #Larnu

Entity Framework 6 .net Framework Migrations / Package Management Console - How Do You Run These In An Azure Pipeline?

I am setting up an Azure Release Pipeline and I need to execute any pending DB Migrations as part of the release.
I have been scouring the internet for over an hour and everything I can find is about dotnet Core, while the database is EF6 on .Net Framework, not dotnet Core (I've done this several times before for Core).
The problem, as I see it, is that EF6 works using Visual Studio's built in Package Manager Console - This just doesn't exist in an Azure Pipeline; It's a Visual Studio weirdness.
There seems to be several ways I can skin this cat, in my head, but I can't figure out how to start with either of them within the context of the pipeline...
OPTION 1: Run the Migrations on the Pipeline - but... how?
OPTION 2: SQL Scripts - Requires running the Package Manager to generate them so they can be run (if I could do that on the pipeline then I'd just run it anyway so these would have to be created locally and committed with the code which is somewhat backward as a solution IMO)
OPTION 3: Write a console app - Do I really have to do this??
You can try Entity Framework Migration Extensions.
This task allows a Build / Release to provide database connection parameters and execute an Entity Framework 6 migration against the database.
Build your project to an output folder and include the migrate.exe executable that comes with Entity Framework 6.
Create an automated build that packages up your files and makes them accessible during a Release.
Create a Release definition for the relevant Build
Add an EF6 Migration task. Once that task is added to an environment within the release, you'll need to enter the appropriate parameters to configure it. All file path parameters should be within the file system for the build, none of them are for TFS source control paths.
You can also check this article.
The answer here is to use the ef6.exe command line tool and make sure it gets shipped with your build.
This could be useful to anyone here until Microsoft update the non-existent docs: http://github.com/dotnet/EntityFramework.Docs/issues/1740 - This contains a table with a kind of translation matrix between the two.

How to run an SSIS package upon Project deployment?

I have an SSIS Project made up of several packages. The "main" package executes the others, and it runs nonstop.
Everytime changes are applied to one or more packages, I need to run the project deployment wizard in VS, then stop the ongoing Active Operation in SQL Server (2016) and then run the package again (also via SQL Server). This can happen several times a day, so it's becoming a nuisance.
Is there a way to trigger a "package-stop; package-start" routine on Deployment?

Ensuring SSIS package on server and source control match

Does anyone have any tips to ensure the SSIS on a production server is in sync with source control?
The only way I can think of to do that is have a separate group that always deploys the SSIS packages, but that isn't feasible in my environment.
Thanks
You can check the version number of the package in source control and the version number on the server.
You can also export the package on the server to the file system of your development box and check to see if the .dtsx file is the same as the one you have in source control.
You could also compare/diff XMLs...

SSDT: How to deploy to a specific LOCALDB file?

In order to implement run and re-run my integration tests an indefinite number of times, I would like to make use of SSDT in VS2012 to publish to a LOCALDB file instance and run EF against that file during integration tests.
Few notes:
We are using EF Database first
We already have a SSDT project that we will use to deploy to a full
database in our different environments
I know that SSDT uses internally a LOCALDB instance to build/deploy/check for errors, so deploying to another custom localdb seems like it should make sense/be doable
Few questions:
Can I deploy to a specific LOCALDB file with SSDT?
Can I do this from the command line in order to automate it when I run integration tests?
Does this roughly seems like a good idea for integration tests with EF or is there a better way? ;-)
Thank you all
You can change the localdb for SSDT in the Debug options for the project. By default the debug options are set to the (localdb) instance and a DB name that corresponds to the project.
You may have more success with Publish Profiles if you're trying to push the project changes to a DB server. You can use those with SQLPackage to push the changes along with a known set of options to a pre-defined server/database.
You can definitely push the changes through a command line. We're doing it with MSBuild to generate a dacpac file, then SQLPackage to publish the changes from the dacpac to the appropriate server/database.
Can't say for sure on this one. If it works for you, it's likely a good start. We do DB development outside of EF and try to do that first rather than trust EF to generate a good relational model.
I have a handful of blog posts on SSDT SQL Projects at http://schottsql.blogspot.com/search/label/SSDT that might be helpful.