<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevOps Archives - AzureOps</title>
	<atom:link href="https://azureops.org/articles/category/devops/feed/" rel="self" type="application/rss+xml" />
	<link>https://azureops.org/articles/category/devops/</link>
	<description>Notable things about Cloud, Data and DevOps.</description>
	<lastBuildDate>Tue, 07 Oct 2025 12:04:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/azureops.org/wp-content/uploads/2021/04/cropped-android-chrome-512x512-1.png?fit=32%2C32&#038;ssl=1</url>
	<title>DevOps Archives - AzureOps</title>
	<link>https://azureops.org/articles/category/devops/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">190208641</site>	<item>
		<title>Automate Databricks Infrastructure as Code with Terraform</title>
		<link>https://azureops.org/articles/automate-databricks-infrastructure-as-code-with-terraform/</link>
		
		<dc:creator><![CDATA[James Sandy]]></dc:creator>
		<pubDate>Fri, 04 Apr 2025 18:47:31 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Databricks]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Terraform]]></category>
		<category><![CDATA[Databricks cicd]]></category>
		<category><![CDATA[IAAC]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8414</guid>

					<description><![CDATA[<p>This article describes how to Implement Infrastructure as Code Databricks with Terraform.</p>
<p>The post <a href="https://azureops.org/articles/automate-databricks-infrastructure-as-code-with-terraform/">Automate Databricks Infrastructure as Code with Terraform</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Terraform can be used to provision, manage, and scale Databricks environments; it allows i<a href="https://learn.microsoft.com/en-us/devops/deliver/what-is-infrastructure-as-code">nfrastructure to be defined as code (IaC)</a>, enabling version control, reproducibility, and automation. Using Terraform to deploy Databricks workspace streamlines resource provisioning, access management, and workspace configuration to ensure consistency across environments and simplify scaling or modifications. This article describes how to Automate Databricks Infrastructure with Terraform.</p>



<h2 class="wp-block-heading"><a></a>Terraform Environment Setup</h2>



<p class="wp-block-paragraph">Databricks is a cloud-based tool built on Apache Spark used in machine learning, big data analytics, and data engineering to enable AI model deployment, fast data processing, and collaboration. Its scalable Delta Lake infrastructure supports its efficient, secure data management.</p>



<p class="wp-block-paragraph">To manage Databricks infrastructure with Terraform, you have to install and configure some of the systems; the first step is installing Terraform and the Databricks provider. Download Terraform from the <a href="https://developer.hashicorp.com/terraform/downloads">official website</a> and ensure it is available in the system&#8217;s path, and then initialize a Terraform working directory by creating a new directory and running :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; title: ; notranslate">
terraform init
</pre></div>


<p class="wp-block-paragraph">Authentication in Databricks is configured using the credentials from cloud providers. A service principal is used to set up authentication for Azure:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [2]; title: ; notranslate">
provider &quot;databricks&quot; {
 host  = &quot;https://&lt;your-databricks-instance&gt;&quot;
 azure_client_id     = var.azure_client_id
 azure_client_secret = var.azure_client_secret
 azure_tenant_id     = var.azure_tenant_id
}
</pre></div>


<p class="wp-block-paragraph">An Access key or service accounts will be required for AWS and GCP</p>



<h2 class="wp-block-heading"><a></a>Databricks Infrastructure with Terraform Setup</h2>



<p class="wp-block-paragraph">Terraform allows configuration using HCL (Hashicorp Configuration Language). and configurations are made in the primary configuration file, main.tf, declares a Databricks workspace:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [1,2,3,4]; title: ; notranslate">
resource &quot;databricks_workspace&quot; &quot;example&quot; {
 name          = &quot;example-workspace&quot;
 resource_group = &quot;example-rg&quot;
 location      = &quot;East US&quot;
}
</pre></div>


<p class="wp-block-paragraph">Configuring clusters within a workspace requires some important setup, like versioning, autoscaling, and specific nodes:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [1,2]; title: ; notranslate">
resource &quot;databricks_cluster&quot; &quot;example&quot; {
 cluster_name            = &quot;example-cluster&quot;
 spark_version           = &quot;12.0.x-scala2.12&quot;
 node_type_id            = &quot;Standard_D3_v2&quot;
 autotermination_minutes = 20
 autoscale {
   min_workers = 2
   max_workers = 8
 }
}
</pre></div>


<h2 class="wp-block-heading"><a></a>Access Control and Permissions</h2>



<p class="wp-block-paragraph">Terraform will be able to control user roles and access control lists using the Databricks permission control user and group access</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [1,2,5,6,7]; title: ; notranslate">
resource &quot;databricks_group&quot; &quot;data_scientists&quot; {
 display_name = &quot;Data Scientists&quot;
}

resource &quot;databricks_user&quot; &quot;analyst&quot; {
 user_name  = &quot;analyst@example.com&quot;
 groups     = &#x5B;databricks_group.data_scientists.id]
}
</pre></div>


<p class="wp-block-paragraph">Integrating Terraform with a cloud IAM system like <a href="https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id">Microsoft Entra Id</a> ensures authentication and access policies are in line with enterprise governance best practices.</p>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading"><a></a>Deploying Databricks Jobs with Terraform</h2>



<p class="wp-block-paragraph">Databricks jobs are used to automate batch and streaming workloads; the databricks_job resources define the job execution parameters:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [1,2,9]; title: ; notranslate">
resource &quot;databricks_job&quot; &quot;example_job&quot; {
 name = &quot;Example Job&quot;
 new_cluster {
   spark_version = &quot;12.0.x-scala2.12&quot;
   node_type_id  = &quot;Standard_D3_v2&quot;
   num_workers   = 4
 }
 notebook_task {
   notebook_path = &quot;/Shared/example_notebook&quot;
 }
}
</pre></div>


<p class="wp-block-paragraph">Scheduling jobs and dependencies are managed within Terraform, allowing seamless automation of recurring tasks.</p>



<h2 class="wp-block-heading"><a></a>Versioning with Terraform</h2>



<p class="wp-block-paragraph">Terraform uses a state file to track all deployed resources to ensure collaborations and prevent conflicts, so remote state storage must be configured.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [3,4,5,6]; title: ; notranslate">
terraform {
 backend &quot;azurerm&quot; {
   resource_group_name  = &quot;terraform-state-rg&quot;
   storage_account_name = &quot;tfstateaccount&quot;
   container_name       = &quot;tfstate&quot;
   key                  = &quot;databricks.tfstate&quot;
 }
}
</pre></div>


<p class="wp-block-paragraph">This ensures changes made to infrastructure are managed safely using <em>terraform plan</em> and <em>terraform apply</em>, preventing unintended changes.</p>



<h2 class="wp-block-heading"><a></a>Automating Deployment with CI/CD</h2>



<p class="wp-block-paragraph">To ensure infrastructure with consistency, Terraform needs to integrate with CI/CD; a Github action pipeline can be used for automated deployments:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; title: ; notranslate">
name: Terraform Deployment
on: &#x5B;push]
jobs:
 deploy:
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v3
     - name: Setup Terraform
       uses: hashicorp/setup-terraform@v1
     - name: Terraform Init
       run: terraform init
     - name: Terraform Apply
       run: terraform apply -auto-approve
</pre></div>


<p class="wp-block-paragraph">This pipeline can also be configured in GitLab CI/CD or Azure DevOps for streamlined deployments.</p>



<h2 class="wp-block-heading"><a></a>Monitoring and Scaling Databricks infrastructure</h2>



<p class="wp-block-paragraph">Databricks environments require monitoring for performance and cost efficiency; Terraform can be used to configure monitoring solutions:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [1,2]; title: ; notranslate">
resource &quot;databricks_instance_profile&quot; &quot;monitoring&quot; {
 instance_profile_arn = &quot;arn:aws:iam::123456789012:instance-profile/DatabricksMonitor&quot;
}
Autoscaling is enabled on the clusters to optimize resource utilization without over-provisioning:
autoscale {
 min_workers = 4
 max_workers = 16
}
</pre></div>


<h2 class="wp-block-heading"><a></a>Errors and debugging Terraform Deployments</h2>



<p class="wp-block-paragraph">Some common Terraform errors include authentication failures and state mismatches. Provider authentication issues can be resolved by verifying permissions and credentials. State mismatches often require manual state adjustments:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [1]; title: ; notranslate">
terraform state rm databricks_cluster.example
terraform apply
</pre></div>


<p class="wp-block-paragraph">Quota restrictions and API rate limits must be handled by adjusting Terraform configurations to include retries and back-off mechanisms.</p>



<h2 class="wp-block-heading"><a></a>Databricks Deployments Optimization.</h2>



<p class="wp-block-paragraph">More resources like <a href="https://www.databricks.com/product/unity-catalog">Unity Catalog </a>for data governance can be managed with Terraform:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; highlight: [2]; title: ; notranslate">
resource &quot;databricks_metastore&quot; &quot;unity&quot; {
 name = &quot;example-metastore&quot;
}
</pre></div>


<p class="wp-block-paragraph"><a href="https://mlflow.org/">MLflow</a> tracking servers can also be set up to manage ML models and notebooks through Git integration, ensuring streamlined workflows.</p>



<p class="wp-block-paragraph">This tutorial has shown how to automate Databricks infrastructure with Terraform, including infra provisioning, access control, job automation, CI/CD integration, and monitoring, but more optimizations like cost management, security best practices, and additional Databricks features can be included.</p>



<p class="has-background wp-block-paragraph" style="background-color:#beefca"><strong>Pro tips:</strong><br>1. Follow this <a href="https://azureops.org/articles/manage-secret-scopes-in-databricks-using-gui/" target="_blank" rel="noreferrer noopener">guide </a>to know how to manage secret scopes in databricks.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>



<p class="wp-block-paragraph"></p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/automate-databricks-infrastructure-as-code-with-terraform/">Automate Databricks Infrastructure as Code with Terraform</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8414</post-id>	</item>
		<item>
		<title>Deploy DACPAC to Azure SQL Database</title>
		<link>https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Wed, 01 Jan 2025 07:56:13 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[dacpac]]></category>
		<category><![CDATA[dacpac sql server]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=8224</guid>

					<description><![CDATA[<p>This guide will walk you through the process of deploy DACPAC to Azure SQL database directly from Visual Studio. </p>
<p>The post <a href="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/">Deploy DACPAC to Azure SQL Database</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Deploying a DACPAC to an Azure SQL Database is a critical step in ensuring your database changes are effectively moved from development to production. This guide will walk you through the process of deploy DACPAC to Azure SQL database directly from Visual Studio. </p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph"><strong>Prerequisites:</strong><br>1. <a href="https://visualstudio.microsoft.com/downloads/" target="_blank" rel="noreferrer noopener">Visual Studio</a> with data tools installed on your system.<br>2. An Azure SQL Database set up and accessible.<br>3. A DACPAC file ready for deployment.</p>



<h2 class="wp-block-heading">Create a DACPAC File</h2>



<p class="wp-block-paragraph">In this <a href="https://azureops.org/articles/dacpac-sql-server-database/" target="_blank" rel="noreferrer noopener">post</a>, we cover the process of creating a DACPAC file, a critical artifact that encapsulates the schema and objects of a SQL Server database. Learn how to build and validate your DACPAC files to ensure seamless deployments.</p>



<h2 class="wp-block-heading">Open a DACPAC File in Visual Studio</h2>



<p class="wp-block-paragraph">Discover how to open and inspect a DACPAC file in Visual Studio. This <a href="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/" target="_blank" rel="noreferrer noopener">guide </a>provides details of how to open DACPAC file in Visual Studio.</p>



<h2 class="wp-block-heading">Deploy DACPAC to Azure SQL Database from Visual Studio</h2>



<p class="wp-block-paragraph">Follow the below steps to deploy the DACPAC project from visual Studio. You can follow the same below steps to deploy database project to any SQL Server database or Azure Managed Instance. Make sure to select correct target platform and provide applicable connection details.</p>



<h4 class="wp-block-heading">1. Open Visual Studio</h4>



<ol start="1" class="wp-block-list">
<li class="">Launch Visual Studio and open your solution or project.</li>



<li class="">Ensure you have the <strong>SQL Server Data Tools (SSDT)</strong> installed.</li>
</ol>



<h4 class="wp-block-heading">2. Change target platform of database project</h4>



<ol class="wp-block-list">
<li class="">Right-click on database project and click properties. </li>



<li class="">Change the Target platform to Microsoft Azure SQL Database as shown in the below image. </li>
</ol>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?ssl=1"><img data-recalc-dims="1" decoding="async" width="753" height="203" data-attachment-id="8247" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/image-28/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?fit=753%2C203&amp;ssl=1" data-orig-size="753,203" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?fit=753%2C203&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=753%2C203&#038;ssl=1" alt="Change target platform of SQL database project. " class="wp-image-8247" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?w=753&amp;ssl=1 753w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=300%2C81&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=450%2C121&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image.png?resize=600%2C162&amp;ssl=1 600w" sizes="(max-width: 753px) 100vw, 753px" /></a></figure>



<h4 class="wp-block-heading">3. Publish the Database Project</h4>



<p class="wp-block-paragraph">Right-click on the project and select <strong>Publish</strong> from the context menu.</p>



<p class="wp-block-paragraph">In <strong>Solution Explorer</strong>, locate your database project.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?ssl=1"><img data-recalc-dims="1" decoding="async" width="555" height="461" data-attachment-id="8227" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/select-dacpac-project-for-deployment/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?fit=555%2C461&amp;ssl=1" data-orig-size="555,461" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Select DACPAC project for deployment" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?fit=555%2C461&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?resize=555%2C461&#038;ssl=1" alt="publish dacpac file from Visual Studio" class="wp-image-8227" style="width:406px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?w=555&amp;ssl=1 555w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?resize=300%2C249&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Select-DACPAC-project-for-deployment.jpg?resize=450%2C374&amp;ssl=1 450w" sizes="(max-width: 555px) 100vw, 555px" /></a></figure>



<h4 class="wp-block-heading">4. Configure the Deployment Target</h4>



<p class="wp-block-paragraph">1. In the <strong>Publish Database</strong> dialog, click <strong>Edit</strong> to specify the target database.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="835" height="374" data-attachment-id="8228" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/edit-target-server-credentials/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?fit=835%2C374&amp;ssl=1" data-orig-size="835,374" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Edit target server credentials" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?fit=835%2C374&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=835%2C374&#038;ssl=1" alt="Create Azure SQL database connection for dacpac deployment " class="wp-image-8228" style="width:558px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?w=835&amp;ssl=1 835w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=300%2C134&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=768%2C344&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=450%2C202&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Edit-target-server-credentials.jpg?resize=600%2C269&amp;ssl=1 600w" sizes="(max-width: 835px) 100vw, 835px" /></a></figure>



<p class="wp-block-paragraph">2. In the <strong>Edit Target Database Connection</strong> window:</p>



<ul class="wp-block-list">
<li class="">Select <strong>Azure SQL Database</strong> as the target.</li>



<li class="">Enter the server name, authentication details, and select the target database.</li>



<li class="">Test the connection to ensure it is valid.</li>



<li class="">Click <strong>OK</strong> to confirm.</li>
</ul>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="879" height="645" data-attachment-id="8229" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/provide-target-server-and-database-details/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?fit=879%2C645&amp;ssl=1" data-orig-size="879,645" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Provide target server and database details" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?fit=879%2C645&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=879%2C645&#038;ssl=1" alt="Deploy DACPAC to Azure SQL Database" class="wp-image-8229" style="width:555px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?w=879&amp;ssl=1 879w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=300%2C220&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=845%2C620&amp;ssl=1 845w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=768%2C564&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=450%2C330&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Provide-target-server-and-database-details.jpg?resize=600%2C440&amp;ssl=1 600w" sizes="(max-width: 879px) 100vw, 879px" /></a></figure>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h4 class="wp-block-heading">5. Review and Publish</h4>



<p class="wp-block-paragraph">1. Back in the <strong>Publish Database</strong> dialog, review the settings to ensure the correct DACPAC file and target database are selected.</p>



<p class="wp-block-paragraph">2. Optionally, click <strong>Advanced</strong> to configure deployment options such as excluding certain schema changes as shown in the below image.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="507" height="639" data-attachment-id="8250" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/image-29/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?fit=507%2C639&amp;ssl=1" data-orig-size="507,639" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?fit=507%2C639&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=507%2C639&#038;ssl=1" alt="" class="wp-image-8250" style="width:378px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?w=507&amp;ssl=1 507w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=238%2C300&amp;ssl=1 238w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=492%2C620&amp;ssl=1 492w, https://i0.wp.com/azureops.org/wp-content/uploads/2025/01/image-1.png?resize=450%2C567&amp;ssl=1 450w" sizes="(max-width: 507px) 100vw, 507px" /></a></figure>



<p class="wp-block-paragraph">3. Click <strong>Publish</strong> to start the deployment process.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="683" height="344" data-attachment-id="8230" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/click-publish-dapac-project-to-azure-sql/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?fit=683%2C344&amp;ssl=1" data-orig-size="683,344" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="Click publish dapac project to azure sql" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?fit=683%2C344&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=683%2C344&#038;ssl=1" alt="Deploy DACPAC to Azure SQL Database" class="wp-image-8230" style="width:535px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?w=683&amp;ssl=1 683w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=300%2C151&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=450%2C227&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/Click-publish-dapac-project-to-azure-sql.jpg?resize=600%2C302&amp;ssl=1 600w" sizes="(max-width: 683px) 100vw, 683px" /></a></figure>



<h4 class="wp-block-heading">6. Monitor and Verify Deployment</h4>



<ol start="1" class="wp-block-list">
<li class="">Monitor the progress of dacpac publish in Visual Studio as shown in the below image.</li>



<li class="">Once the deployment is complete, open <strong>SQL Server Management Studio (SSMS)</strong> or use Visual Studio’s built-in tools to verify the schema changes in your Azure SQL Database.</li>



<li class="">Run test queries to confirm the database is functioning as expected.</li>
</ol>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="677" height="90" data-attachment-id="8231" data-permalink="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/monitor-the-progress-of-deployment/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?fit=677%2C90&amp;ssl=1" data-orig-size="677,90" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="monitor the progress of deployment" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?fit=677%2C90&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=677%2C90&#038;ssl=1" alt="" class="wp-image-8231" style="width:581px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?w=677&amp;ssl=1 677w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=300%2C40&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=450%2C60&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/12/monitor-the-progress-of-deployment.jpg?resize=600%2C80&amp;ssl=1 600w" sizes="(max-width: 677px) 100vw, 677px" /></a></figure>



<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. Refer to this <a href="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/" target="_blank" rel="noreferrer noopener">post </a>if you wish to Automate Azure SQL Database deployment using Azure DevOps CICD pipeline.<br>2. If you skip target platform change step during the deployment, you may get an error &#8220;A project which specifies SQL Server 2022 or Azure SQL Database Managed Instance as the target platform cannot be published to Microsoft Azure SQL Database v12.&#8221;. Refer to this <a href="https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/" target="_blank" rel="noreferrer noopener">post </a>to learn more about it.<br>3. Test your DACPAC deployment on a local environment before pushing it to Azure.<br>4. Always take a backup of your target Azure SQL Database before deployment.<br>5. Use tools like SQL Compare to identify schema differences between the DACPAC and the target database.<br></p>



<h2 class="wp-block-heading">FAQ</h2>


<div class="wp-block-uagb-faq uagb-faq__outer-wrap uagb-block-f06236a7 uagb-faq-icon-row uagb-faq-layout-accordion uagb-faq-expand-first-true uagb-faq-inactive-other-true uagb-faq__wrap uagb-buttons-layout-wrap uagb-faq-equal-height     " data-faqtoggle="true" role="tablist"><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-3becbfb9 " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">1. How do I deploy a DACPAC using SSMS?</span></div><div class="uagb-faq-content"><p>In SQL Server Management Studio, right-click the target database → Tasks → Deploy Data-tier Application → select your DACPAC file.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-e5bcb60d " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">2. Can I deploy a DACPAC using command line?</span></div><div class="uagb-faq-content"><p>Yes. Use the <code>sqlpackage.exe /Action:Publish /SourceFile:mydb.dacpac /TargetConnectionString:"..."</code> command.</p></div></div><div class="wp-block-uagb-faq-child uagb-faq-child__outer-wrap uagb-faq-item uagb-block-dfafc55e " role="tab" tabindex="0"><div class="uagb-faq-questions-button uagb-faq-questions">			<span class="uagb-icon uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"></path></svg>
							</span>
						<span class="uagb-icon-active uagb-faq-icon-wrap">
								<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 448 512"><path d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"></path></svg>
							</span>
			<span class="uagb-question">3. What errors are common during DACPAC deployment?</span></div><div class="uagb-faq-content"><p>Common issues include schema conflicts, missing permissions, and version mismatches. Use <code>/p:BlockOnPossibleDataLoss=false</code> carefully if schema changes drop objects.</p></div></div></div>


<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/">Deploy DACPAC to Azure SQL Database</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8224</post-id>	</item>
		<item>
		<title>A project which specifies SQL Server 2022 or Azure SQL Database Managed Instance as the target platform cannot be published to Microsoft Azure SQL Database v12.</title>
		<link>https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Sat, 10 Aug 2024 12:40:10 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[azure sql cicd]]></category>
		<category><![CDATA[dacpac sql server]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=7974</guid>

					<description><![CDATA[<p>While deploying a DACPAC project to Azure SQL Database using Azure DevOps, you may encounter an error due to specifying SQL Server 2022 as the target platform. The article provides steps to fix this issue by changing the target platform to 'Microsoft Azure SQL Database' in Visual Studio and rebuilding the project.</p>
<p>The post <a href="https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/">A project which specifies SQL Server 2022 or Azure SQL Database Managed Instance as the target platform cannot be published to Microsoft Azure SQL Database v12.</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">While deploying a DACPAC project to Azure SQL database using Azure DevOps, you may come across &#8216;A project which specifies SQL Server 2022 as the target platform cannot be published to Azure SQL Database v12.&#8217; error. In this article, we will see how to fix this issue.</p>



<h2 class="wp-block-heading">Error</h2>



<p class="wp-block-paragraph">##[error]*** An error occurred during deployment plan generation. Deployment cannot continue.<br>##[error]A project which specifies SQL Server 2022 or Azure SQL Database Managed Instance as the target platform cannot be published to Microsoft Azure SQL Database v12.<br>##[error]The Azure SQL DACPAC task failed. SqlPackage.exe exited with code 1.Check out how to troubleshoot failures at <a href="https://aka.ms/sqlazuredeployreadme#troubleshooting-">https://aka.ms/sqlazuredeployreadme#troubleshooting-</a></p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="531" data-attachment-id="7975" data-permalink="https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platf/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?fit=1226%2C543&amp;ssl=1" data-orig-size="1226,543" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?fit=1200%2C531&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?resize=1200%2C531&#038;ssl=1" alt="a project which specifies sql server 2022 as the target platform cannot be published to azure." class="wp-image-7975" style="width:1081px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?resize=1200%2C531&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?resize=300%2C133&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?resize=768%2C340&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?resize=450%2C199&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?resize=600%2C266&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/A-project-which-specifies-SQL-Server-2022-or-Azure-SQL-Database-Managed-Instance-as-the-target-platf.webp?w=1226&amp;ssl=1 1226w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">Solution</h2>



<p class="wp-block-paragraph">1. Open the database dacpac project in Visual Studio.</p>



<p class="wp-block-paragraph">2. Right Click on the database project and Click on &#8216;Properties&#8217;.</p>



<p class="wp-block-paragraph">3. Open &#8216;Target platform&#8217; drop down and select &#8216;Microsoft Azure SQL Database&#8217;.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="830" height="481" data-attachment-id="7977" data-permalink="https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/change-target-platfoem-in-dacpac-project/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?fit=830%2C481&amp;ssl=1" data-orig-size="830,481" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Change-target-platfoem-in-dacpac-project" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?fit=830%2C481&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?resize=830%2C481&#038;ssl=1" alt="" class="wp-image-7977" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?w=830&amp;ssl=1 830w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?resize=300%2C174&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?resize=768%2C445&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?resize=450%2C261&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/07/Change-target-platfoem-in-dacpac-project.webp?resize=600%2C348&amp;ssl=1 600w" sizes="(max-width: 830px) 100vw, 830px" /></a></figure>



<p class="wp-block-paragraph">4. Save the project and build it.</p>



<p class="wp-block-paragraph">5. If the build is successful, raise a PR to merge this change with main branch and initiate the Azure DevOps CICD pipeline.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/8YVrxCgdiIg?si=jQ6skABMZiloGfP-" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. Follow the steps mentioned in the article<a href="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/" target="_blank" rel="noreferrer noopener"> deploy azure sql database using devops</a> to automate Azure SQL database deployments.</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/">A project which specifies SQL Server 2022 or Azure SQL Database Managed Instance as the target platform cannot be published to Microsoft Azure SQL Database v12.</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7974</post-id>	</item>
		<item>
		<title>Implement Azure SQL Database Deployment CI CD pipeline</title>
		<link>https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Wed, 03 Apr 2024 08:35:20 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[azure devops yaml templates]]></category>
		<category><![CDATA[azure sql deployment]]></category>
		<category><![CDATA[ci cd pipelines]]></category>
		<category><![CDATA[deployment automations]]></category>
		<category><![CDATA[sql server cicd]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=7457</guid>

					<description><![CDATA[<p>In this blog post, we'll delve into the step-by-step guide of how to implement Azure SQL database Deployment CI CD pipeline using Azure DevOps.</p>
<p>The post <a href="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/">Implement Azure SQL Database Deployment CI CD pipeline</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In today&#8217;s rapidly evolving digital landscape, deploying and managing database objects efficiently is crucial for maintaining the agility and scalability of modern applications. <a href="https://learn.microsoft.com/en-us/azure/azure-sql/database/sql-database-paas-overview?view=azuresql" target="_blank" rel="noreferrer noopener">Azure SQL Database</a>, a fully managed relational database service provided by Microsoft, offers a robust platform for storing and managing data in the cloud. Leveraging Azure DevOps Continuous Integration and Continuous Deployment (CI CD) pipelines streamlines the process of deploying SQL database objects, ensuring consistency, reliability, and rapid iteration. In this blog post, we&#8217;ll delve into the step-by-step guide of how to implement Azure SQL Server CICD pipeline using Azure DevOps.</p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph"><strong>Prerequisites</strong>:<br>1.<a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&amp;tabs=yaml" target="_blank" rel="noreferrer noopener">Service connections</a> in Azure DevOps project for each resource groups containing Azure SQL databases.</p>



<h2 class="wp-block-heading">Create a database project and link it to Azure Repos</h2>



<p class="wp-block-paragraph">When setting up a CI/CD pipeline for Azure SQL Database, it&#8217;s essential to understand how to create a DACPAC file and utilize Visual Studio to a database project from it. This project then needs to be integrated with Azure Repos for setting up an automated build and deployment pipeline. In case you already have this setup, you can skip this section.</p>



<h3 class="wp-block-heading">Create a DACPAC file</h3>



<p class="wp-block-paragraph"> A DACPAC (Data-tier Application Component Package) file is a portable representation of a SQL Server database schema, making it crucial for efficiently managing database changes. Follow the steps mentioned in <a href="https://azureops.org/articles/dacpac-sql-server-database/" target="_blank" rel="noreferrer noopener">this </a>post to learn how to create it. If you already have a database project, you can skip this step.</p>



<h3 class="wp-block-heading">Create a database project from the DACPAC file</h3>



<p class="wp-block-paragraph">Once the DACPAC file is ready, integrating it into a Visual Studio project becomes imperative for further development and deployment. Detailed instructions on opening a DACPAC file in Visual Studio can be found in the <a href="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/" target="_blank" rel="noreferrer noopener">guide </a></p>



<h3 class="wp-block-heading">Link database project with Azure Repos</h3>



<p class="wp-block-paragraph">Create a repo in Azure DevOps under the DevOps organization project and link the database project with it. Follow the steps mentioned in <a href="https://docs.devart.com/source-control/linking-to-source-control/linking-db-to-git-repository-in-azure-devops.html" target="_blank" rel="noreferrer noopener">this </a>post to learn about it.</p>



<h2 class="wp-block-heading">Setup Azure SQL Server CICD pipeline</h2>



<p class="wp-block-paragraph">Once we have Azure repo ready for Azure SQL database projects, let us now implement SQL DACPAC deployment Azure DevOps pipeline.</p>



<h3 class="wp-block-heading">Enable access to Azure Key Vault from Azure DevOps pipelines</h3>



<p class="wp-block-paragraph">To connect to Azure SQL Database from Azure DevOps deployment pipeline, we need to fetch database credentials from Azure Key Vault. Follow the<a href="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/" target="_blank" rel="noreferrer noopener"> </a>steps mentioned in <a href="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/">this </a>article to enable access to Azure Key Vault secrets from Azure DevOps pipeline.</p>



<h3 class="wp-block-heading">Create a new pipeline in Azure DevOps project</h3>



<p class="wp-block-paragraph">It&#8217;s time to set up a deployment pipeline for the Azure SQL database.</p>



<p class="wp-block-paragraph">1. Login to Azure DevOps <a href="https://dev.azure.com/" target="_blank" rel="noreferrer noopener">portal </a>and navigate to the DevOps organization. Select the DevOps project containing the database Azure repo we created in the above step.</p>



<p class="wp-block-paragraph">2. Select Pipelines and Click &#8216;New pipeline&#8217; button to create a new pipeline. </p>



<p class="wp-block-paragraph">3. Select &#8216;Azure Repos Git&#8217; as a source of your code. </p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="834" height="366" data-attachment-id="7477" data-permalink="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/create-new-devops-pipeline/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?fit=834%2C366&amp;ssl=1" data-orig-size="834,366" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Create-new-devops-pipeline" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?fit=834%2C366&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?resize=834%2C366&#038;ssl=1" alt="SQL Server CICD " class="wp-image-7477" style="width:653px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?w=834&amp;ssl=1 834w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?resize=300%2C132&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?resize=768%2C337&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?resize=450%2C197&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Create-new-devops-pipeline.png?resize=600%2C263&amp;ssl=1 600w" sizes="(max-width: 834px) 100vw, 834px" /></a></figure>



<p class="wp-block-paragraph">4. Select the Azure repo containing the database project we created in previous steps.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="808" height="398" data-attachment-id="7476" data-permalink="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/select-devops-repository/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?fit=808%2C398&amp;ssl=1" data-orig-size="808,398" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Select-DevOps-repository" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?fit=808%2C398&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?resize=808%2C398&#038;ssl=1" alt="Select Azure SQL database repository in devops pipeline." class="wp-image-7476" style="width:643px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?w=808&amp;ssl=1 808w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?resize=300%2C148&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?resize=768%2C378&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?resize=450%2C222&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-DevOps-repository.png?resize=600%2C296&amp;ssl=1 600w" sizes="(max-width: 808px) 100vw, 808px" /></a></figure>



<p class="wp-block-paragraph">5. On the Configure screen, select the &#8216;Starter pipeline&#8217; option as shown in the image below.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="839" height="639" data-attachment-id="7478" data-permalink="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/select-starter-pipeline/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?fit=839%2C639&amp;ssl=1" data-orig-size="839,639" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Select-Starter-pipeline" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?fit=839%2C639&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?resize=839%2C639&#038;ssl=1" alt="SQL Server CICD " class="wp-image-7478" style="aspect-ratio:1;width:441px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?w=839&amp;ssl=1 839w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?resize=300%2C228&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?resize=814%2C620&amp;ssl=1 814w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?resize=768%2C585&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?resize=450%2C343&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-Starter-pipeline.png?resize=600%2C457&amp;ssl=1 600w" sizes="(max-width: 839px) 100vw, 839px" /></a></figure>



<p class="wp-block-paragraph">6. Add below YAML code to the editor on Review screen and make necessary changes as per your environment. You can use YAML pipeline tasks to generate the code snippets based on your parameter values. </p>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; highlight: [58,60,62,68,71,75,76]; title: ; notranslate">
trigger:
# Name of the main (master) branch of the Azure DevOps repos. 
- main

variables:
  vmImageName: &#039;windows-latest&#039;
  solution: &#039;**/*.sln&#039;
  buildPlatform: &#039;Any CPU&#039;
  buildConfiguration: &#039;Release&#039;

stages:
- stage: build
  displayName: Build Stage
  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: NuGetToolInstaller@1
    - task: NuGetCommand@2
      inputs:
        restoreSolution: &#039;$(solution)&#039;
    - task: VSBuild@1
      inputs:
        solution: &#039;$(solution)&#039;
        platform: &#039;$(buildPlatform)&#039;
        configuration: &#039;$(buildConfiguration)&#039;
    - task: CopyFiles@2
      inputs:
        SourceFolder: &#039;$(agent.builddirectory)&#039;
        Contents: &#039;**/bin/$(buildConfiguration)/**&#039;
        TargetFolder: &#039;$(build.artifactstagingdirectory)&#039;
        CleanTargetFolder: true
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: &#039;$(build.artifactstagingdirectory)&#039;
        ArtifactName: &#039;drop&#039;
        publishLocation: &#039;Container&#039;

- stage: dev
  displayName: Dev Deploy Stage
  dependsOn: build
  condition: and(succeeded(), ne(variables&#x5B;&#039;Build.Reason&#039;], &#039;PullRequest&#039;))
  jobs: 
  - deployment: Deploy
    displayName: Deploy Dev
    pool:
      vmImage: $(vmImageName)
    environment: dev
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureKeyVault@1
            inputs:
             # Enter name of the service connection created to deploy resources to dev Azure SQL database. 
              AzureSubscription: &#039;dev-service-connection-name&#039;
             # Enter name of the key vault that stores Azure SQL database credentials. 
              KeyVaultName: &#039;dev-keyva&#039;
             # Enter comma separated names of the key vault secrets that store the Azure SQL database credentials.
              SecretsFilter: &#039;azuresqldb-dbconnstring&#039;
              RunAsPreJob: true

          - task: SqlAzureDacpacDeployment@1
            inputs:
             # Enter name of the service connection created to deploy resources to dev Azure SQL database. 
              AzureSubscription: &#039;dev-service-connection-name&#039;
              AuthenticationType: &#039;connectionString&#039;
             # Provide the database connection string variable value to ConnectionString parameter. (key vault secret name)
              ConnectionString: &#039;$(azuresqldb-dbconnstring)&#039;
              DeployType: &#039;DacpacTask&#039;
              DeploymentAction: &#039;Publish&#039;
              # Provide path of the dacpac file. Replace &#039;AzureOps.Sql&#039; with name of your AzureRepo and AzureOps.Sql.dacpac with name of your database dacpac file.
              DacpacFile: &#039;$(Pipeline.Workspace)/drop/s/AzureOps.Sql/bin/Release/AzureOps.Sql.dacpac&#039;
              AdditionalArguments: &#039;/p:DropObjectsNotInSource=true /p:BlockOnPossibleDataLoss=true /p:IgnorePermissions=true /p:ExcludeObjectTypes=&quot;Users;Permissions&quot;&#039;
              IpDetectionMethod: &#039;AutoDetect&#039;

# similarly, customise below block of code for test environment deployment.
- stage: test
  displayName: Test Deploy Stage
  dependsOn: dev
  condition: and(succeeded(), ne(variables&#x5B;&#039;Build.Reason&#039;], &#039;PullRequest&#039;))
  jobs: 
  - deployment: Deploy
    displayName: Deploy Test
    pool:
      vmImage: $(vmImageName)
    environment: test
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureKeyVault@1
            inputs:
              AzureSubscription: &#039;test-service-connection-name&#039;
              KeyVaultName: &#039;test-keyva&#039;
              SecretsFilter: &#039;azuresqldb-dbconnstring&#039;
              RunAsPreJob: true

          - task: SqlAzureDacpacDeployment@1
            inputs:
              azureSubscription: &#039;test-service-connection-name&#039;
              AuthenticationType: &#039;connectionString&#039;
              ConnectionString: &#039;$(azuresqldb-dbconnstring)&#039;
              DeployType: &#039;DacpacTask&#039;
              DeploymentAction: &#039;Publish&#039;
              DacpacFile: &#039;$(Pipeline.Workspace)/drop/s/AzureOps.Sql/bin/Release/AzureOps.Sql.dacpac&#039;
              AdditionalArguments: &#039;/p:DropObjectsNotInSource=true /p:BlockOnPossibleDataLoss=true /p:IgnorePermissions=true /p:ExcludeObjectTypes=&quot;Users;Permissions&quot;&#039;     
              IpDetectionMethod: &#039;AutoDetect&#039;
</pre></div>


<p class="has-background wp-block-paragraph" style="background-color:#f1e4bf"><strong>Note:</strong><br>You can add AdditionalArguments to SqlAzureDacpacDeployment task like DropObjectsNotInSource=true which will drop objects from the database which do not exists in DACPAC file. <a href="https://learn.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.dac.dacdeployoptions.additionaldeploymentcontributorarguments?view=sql-dacfx-162" target="_blank" rel="noreferrer noopener">Read </a>more about all the properties supported in SqlAzureDacpacDeployment. Exercise this with caution.</p>



<h2 class="wp-block-heading">Review and test the pipeline</h2>



<p class="wp-block-paragraph">Click on &#8216;Run pipeline&#8217; button to manually trigger the pipeline and test if the pipeline works without any issues.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="276" data-attachment-id="7621" data-permalink="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/run-azure-devops-pipeline-manually/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?fit=1228%2C282&amp;ssl=1" data-orig-size="1228,282" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Run-Azure-devops-pipeline-manually" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?fit=1200%2C276&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?resize=1200%2C276&#038;ssl=1" alt="" class="wp-image-7621" style="width:880px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?resize=1200%2C276&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?resize=300%2C69&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?resize=768%2C176&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?resize=450%2C103&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?resize=600%2C138&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/04/Run-Azure-devops-pipeline-manually.png?w=1228&amp;ssl=1 1228w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">How to Manually Deploy DACPAC project to Azure SQL Database</h2>



<p class="wp-block-paragraph">Refer to this <a href="https://azureops.org/articles/deploy-dacpac-to-azure-sql-database/" target="_blank" rel="noreferrer noopener">post </a>if you want to deploy DACPAC project to Azure SQL database using Visual Studio.</p>



<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong> <br>1. When publishing a DACPAC, the pipeline might fail with potential data loss errors. Customize the publish parameters according to your specific requirements in such cases.<br>2. Before implementing a block for production deployment, it&#8217;s advisable to thoroughly test the pipeline in lower environments. This ensures that any issues or bugs are identified and resolved before reaching critical stages of deployment.<br>3. To prevent unintended code deployments to higher environments, incorporate mandatory approvals at each stage of deployment. This ensures that changes are reviewed and approved before progressing to the next environment, maintaining the integrity of the deployment process.<br>4. If you come access error &#8216;A project which specifies SQL Server 2022 or Azure SQL Database Managed Instance as the target platform cannot be published to Microsoft Azure SQL Database v12., follow <a href="https://azureops.org/articles/a-project-which-specifies-sql-server-2022-or-azure-sql-database-managed-instance-as-the-target-platform-cannot-be-published-to-microsoft-azure-sql-database-v12/" target="_blank" rel="noreferrer noopener">this </a>article to resolve the issue.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/8YVrxCgdiIg?si=jQ6skABMZiloGfP-" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/implement-azure-sql-database-deployment-ci-cd-pipeline/">Implement Azure SQL Database Deployment CI CD pipeline</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7457</post-id>	</item>
		<item>
		<title>Access Key Vault from Azure DevOps Pipeline</title>
		<link>https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Fri, 22 Mar 2024 20:00:18 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Key Vault]]></category>
		<category><![CDATA[azure devops pipelines]]></category>
		<category><![CDATA[key vault secrets]]></category>
		<category><![CDATA[Microsoft Entra]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=7505</guid>

					<description><![CDATA[<p>When setting up deployment pipelines in Azure DevOps, sometimes you need to get secret information stored in Azure Key Vault. This article describes how to access Key Vault from your Azure DevOps Pipelines. It&#8217;s all about keeping sensitive data safe and making your deployment process smooth and reliable. Let&#8217;s dive in! Pre-requisites:1. Azure DevOps project [&#8230;]</p>
<p>The post <a href="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/">Access Key Vault from Azure DevOps Pipeline</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When setting up deployment pipelines in Azure DevOps, sometimes you need to get secret information stored in Azure Key Vault. This article describes how to access Key Vault from your Azure DevOps Pipelines. It&#8217;s all about keeping sensitive data safe and making your deployment process smooth and reliable. Let&#8217;s dive in!</p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph"><strong>Pre-requisites:</strong><br>1. Azure DevOps project and a key vault.<br>2. Permission to access Microsoft Entra ID applications.</p>



<h2 class="wp-block-heading">What is Azure DevOps project service principal?</h2>



<p class="wp-block-paragraph">To know the service principle (entra application ID) associated with Azure DevOps project </p>



<p class="wp-block-paragraph">1. navigate to &#8216;Project Settings&#8217; &#8211; &gt; &#8216;Service connections&#8217;.</p>



<p class="wp-block-paragraph">2. Open any service connection and click on the &#8216;Manage Service Principal&#8217; link as shown in the image below.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="760" height="384" data-attachment-id="7508" data-permalink="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/manage-service-principal/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?fit=760%2C384&amp;ssl=1" data-orig-size="760,384" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Manage-service-principal" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?fit=760%2C384&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?resize=760%2C384&#038;ssl=1" alt="" class="wp-image-7508" style="width:598px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?w=760&amp;ssl=1 760w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?resize=300%2C152&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?resize=450%2C227&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Manage-service-principal.png?resize=600%2C303&amp;ssl=1 600w" sizes="(max-width: 760px) 100vw, 760px" /></a></figure>



<p class="wp-block-paragraph">3. This will open the Microsoft Entra ID application associated with the DevOps project in Azure portal. </p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="940" height="439" data-attachment-id="7509" data-permalink="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/azure-devops-project-entra-id-application/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?fit=940%2C439&amp;ssl=1" data-orig-size="940,439" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Azure-DevOps-project-entra-id-application" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?fit=940%2C439&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?resize=940%2C439&#038;ssl=1" alt="Access Key Vault from Azure DevOps Pipeline - View DevOps project Application ID" class="wp-image-7509" style="width:679px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?w=940&amp;ssl=1 940w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?resize=300%2C140&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?resize=768%2C359&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?resize=450%2C210&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Azure-DevOps-project-entra-id-application.png?resize=600%2C280&amp;ssl=1 600w" sizes="(max-width: 940px) 100vw, 940px" /></a></figure>



<p class="wp-block-paragraph">4. Note the Application (client) ID. This is the application ID to which we would need to grant access to Azure key vault.</p>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">Grant access to Azure DevOps application ID on Azure key vault</h2>



<p class="wp-block-paragraph">1. Navigate to the key vault in Azure <a href="https://portal.azure.com/#home" target="_blank" rel="noreferrer noopener">portal </a>that you want to access in Azure DevOps project pipelines. </p>



<p class="wp-block-paragraph">2. Click on &#8216;Access policies&#8217; on the left side navigation list and click &#8216;Create&#8217; to create a new access policy.</p>



<p class="wp-block-paragraph">3. Select the required permissions for the pipeline and Click &#8216;Next&#8217;.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="806" height="384" data-attachment-id="7512" data-permalink="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/select-key-vault-access-level/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?fit=806%2C384&amp;ssl=1" data-orig-size="806,384" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Select-key-vault-access-level" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?fit=806%2C384&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?resize=806%2C384&#038;ssl=1" alt="" class="wp-image-7512" style="width:605px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?w=806&amp;ssl=1 806w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?resize=300%2C143&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?resize=768%2C366&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?resize=450%2C214&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Select-key-vault-access-level.png?resize=600%2C286&amp;ssl=1 600w" sizes="(max-width: 806px) 100vw, 806px" /></a></figure>



<p class="wp-block-paragraph">4. Search for the application ID (from the previous section) and select the application.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Search-Microsoft-graph-for-application-id-in-Azure-key-vault.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="597" height="349" data-attachment-id="7513" data-permalink="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/search-microsoft-graph-for-application-id-in-azure-key-vault/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Search-Microsoft-graph-for-application-id-in-Azure-key-vault.png?fit=597%2C349&amp;ssl=1" data-orig-size="597,349" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Search-Microsoft-graph-for-application-id-in-Azure-key-vault" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Search-Microsoft-graph-for-application-id-in-Azure-key-vault.png?fit=597%2C349&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Search-Microsoft-graph-for-application-id-in-Azure-key-vault.png?resize=597%2C349&#038;ssl=1" alt="Access Key Vault from Azure DevOps Pipeline" class="wp-image-7513" style="width:522px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Search-Microsoft-graph-for-application-id-in-Azure-key-vault.png?w=597&amp;ssl=1 597w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Search-Microsoft-graph-for-application-id-in-Azure-key-vault.png?resize=300%2C175&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/Search-Microsoft-graph-for-application-id-in-Azure-key-vault.png?resize=450%2C263&amp;ssl=1 450w" sizes="(max-width: 597px) 100vw, 597px" /></a></figure>



<p class="wp-block-paragraph">5. Authorise the app to perform the specified permissions on the User&#8217;s or Group&#8217;s behalf.</p>



<p class="wp-block-paragraph">6. &#8216;Review&#8217; the steps and click &#8221;Create&#8217; to grant access to the DevOps project on Azure key vault.</p>



<h2 class="wp-block-heading">Access the key vault secrets in Azure DevOps YAML pipeline</h2>



<p class="wp-block-paragraph">Once the access is set up, you can add a Azure Key Vault Task in your YAML pipeline to access key vault secrets. </p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/add-a-new-key-vault-task-in-YAML-pipeline.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="366" height="422" data-attachment-id="7558" data-permalink="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/add-a-new-key-vault-task-in-yaml-pipeline/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/add-a-new-key-vault-task-in-YAML-pipeline.png?fit=366%2C422&amp;ssl=1" data-orig-size="366,422" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="add-a-new-key-vault-task-in-YAML-pipeline" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/add-a-new-key-vault-task-in-YAML-pipeline.png?fit=366%2C422&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/add-a-new-key-vault-task-in-YAML-pipeline.png?resize=366%2C422&#038;ssl=1" alt="Add Azure key vault task in Azure DevOps YAML pipeline." class="wp-image-7558" style="width:270px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/add-a-new-key-vault-task-in-YAML-pipeline.png?w=366&amp;ssl=1 366w, https://i0.wp.com/azureops.org/wp-content/uploads/2024/03/add-a-new-key-vault-task-in-YAML-pipeline.png?resize=260%2C300&amp;ssl=1 260w" sizes="(max-width: 366px) 100vw, 366px" /></a></figure>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; title: ; notranslate">
          - task: AzureKeyVault@1
            inputs:
              azureSubscription: &#039;service-connection-name&#039;
              KeyVaultName: &#039;key-vault-name&#039;
              SecretsFilter: &#039;secret1,secret2&#039;
              RunAsPreJob: true
</pre></div>


<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1.  <a href="https://azureops.org/articles/key-vault-secrets-in-azure-data-factory/" target="_blank" rel="noreferrer noopener">Learn</a> how to access Key Vault secrets in Azure Data Factory.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/access-key-vault-from-azure-devops-pipeline/">Access Key Vault from Azure DevOps Pipeline</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7505</post-id>	</item>
		<item>
		<title>Export PowerApps App to another environment</title>
		<link>https://azureops.org/articles/export-and-import-powerapps/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Sun, 19 Nov 2023 13:43:28 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Power Apps]]></category>
		<category><![CDATA[Export PowerApps]]></category>
		<category><![CDATA[Import PowerApps]]></category>
		<category><![CDATA[Power Platform]]></category>
		<category><![CDATA[PowerApps]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=1963</guid>

					<description><![CDATA[<p>Microsoft PowerApps simplifies app creation with templates, connectors, and third-party apps. Its popularity among developers is due to its ability to perform CRUD operations and support most data sources, including on-premises. Once the app is developed, you may want to migrate it to another environment like dev to test. This article describes how to export [&#8230;]</p>
<p>The post <a href="https://azureops.org/articles/export-and-import-powerapps/">Export PowerApps App to another environment</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Microsoft PowerApps simplifies app creation with templates, connectors, and third-party apps. Its popularity among developers is due to its ability to perform CRUD operations and support most data sources, including on-premises. Once the app is developed, you may want to migrate it to another environment like dev to test. This article describes how to export and import PowerApps Canvas apps from one environment to another.</p>



<h2 class="wp-block-heading">Export PowerApps package</h2>



<p class="wp-block-paragraph">Follow the below steps to export an existing PowerApps package.</p>



<p class="wp-block-paragraph">1. Launch the PowerApps <a href="https://www.microsoft.com/en-us/power-platform/products/power-apps" target="_blank" rel="noreferrer noopener">portal</a> and navigate to the apps. </p>



<p class="wp-block-paragraph">2. Navigate the PowerApps you want to export and click the Elips icon {&#8230;}. Click on the Export package, as shown in the image below.</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="594" data-attachment-id="6762" data-permalink="https://azureops.org/articles/export-and-import-powerapps/export-powerapps-package/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?fit=1225%2C606&amp;ssl=1" data-orig-size="1225,606" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Export-PowerApps-package" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?fit=1200%2C594&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?resize=1200%2C594&#038;ssl=1" alt="export powerapps app to another environment" class="wp-image-6762" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?resize=1200%2C594&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?resize=300%2C148&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?resize=768%2C380&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?resize=450%2C223&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?resize=600%2C297&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Export-PowerApps-package.png?w=1225&amp;ssl=1 1225w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<p class="wp-block-paragraph">3. Under &#8216;Review Package Content,&#8217; provide the package name and environment where the app will be stored. A&nbsp;Power Platform <a href="https://learn.microsoft.com/en-us/power-platform/admin/environments-overview" target="_blank" rel="noreferrer noopener">environment</a>&nbsp;is a space to store, manage, and share your organization&#8217;s business data, apps, chatbots, and flows. It also serves as a container for apps with different roles, security requirements, or audiences.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="689" data-attachment-id="6765" data-permalink="https://azureops.org/articles/export-and-import-powerapps/manage-powerapps-export-package-options-1/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?fit=1741%2C1000&amp;ssl=1" data-orig-size="1741,1000" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Manage-PowerApps-export-package-options-1" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?fit=1200%2C689&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=1200%2C689&#038;ssl=1" alt="Export and Import PowerApps" class="wp-image-6765" style="width:927px;height:auto" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=1200%2C689&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=300%2C172&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=1079%2C620&amp;ssl=1 1079w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=768%2C441&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=1536%2C882&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=450%2C258&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?resize=600%2C345&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Manage-PowerApps-export-package-options-1.png?w=1741&amp;ssl=1 1741w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">Import PowerApps package</h2>



<p class="wp-block-paragraph">Follow the below steps to import the PowerApps package we exported in the previous steps.</p>



<p class="wp-block-paragraph">1. Navigate to the PowerApps portal where you want to import the PowerApps. Click on &#8216;Import canvas app&#8217; as shown in the image below.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="923" height="267" data-attachment-id="6767" data-permalink="https://azureops.org/articles/export-and-import-powerapps/import-powerapps-package/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?fit=923%2C267&amp;ssl=1" data-orig-size="923,267" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Import-PowerApps-package" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?fit=923%2C267&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?resize=923%2C267&#038;ssl=1" alt="" class="wp-image-6767" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?w=923&amp;ssl=1 923w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?resize=300%2C87&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?resize=768%2C222&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?resize=450%2C130&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/10/Import-PowerApps-package.png?resize=600%2C174&amp;ssl=1 600w" sizes="(max-width: 923px) 100vw, 923px" /></a></figure>



<p class="wp-block-paragraph">2. On the import package screen, browse the package we exported in the previous steps and click on the Upload button.</p>



<p class="wp-block-paragraph">3. Once the package is uploaded, review the package content. Click the ACTION button and update the settings.</p>



<p class="wp-block-paragraph">4. You will see them under the Related resources section if you are connected to resources like the Azure SQL database. Click the ACTION button to update connection details. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="678" data-attachment-id="6872" data-permalink="https://azureops.org/articles/export-and-import-powerapps/image-18/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?fit=1613%2C912&amp;ssl=1" data-orig-size="1613,912" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?fit=1200%2C678&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=1200%2C678&#038;ssl=1" alt="export powerapps app to another environment" class="wp-image-6872" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=1200%2C678&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=300%2C170&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=1097%2C620&amp;ssl=1 1097w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=768%2C434&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=1536%2C868&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=450%2C254&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?resize=600%2C339&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/11/image.png?w=1613&amp;ssl=1 1613w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<p class="wp-block-paragraph">5. Once all settings are okay, click the Import button to configure the PowerApps in the target environment.</p>



<p class="wp-block-paragraph">6. Review the app and share it with end users.</p>



<p class="wp-block-paragraph">We have seen how to export and import PowerApps package for migrations.</p>



<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. <a href="https://azureops.org/articles/implement-rls-in-power-bi/" target="_blank" rel="noreferrer noopener">Learn</a> how to implement row-level security in Power BI.<br>2. <a href="https://azureops.org/articles/export-and-import-powerapps/" target="_blank" rel="noreferrer noopener">Learn </a>how to delete multiple records from a PowerApps data source.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/export-and-import-powerapps/">Export PowerApps App to another environment</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1963</post-id>	</item>
		<item>
		<title>Open DACPAC File in Visual Studio</title>
		<link>https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Sat, 23 Sep 2023 18:39:04 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[SQL Database]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[dacpac]]></category>
		<category><![CDATA[dacpac sql server]]></category>
		<category><![CDATA[SQL Server data tools]]></category>
		<category><![CDATA[visual studio]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=6678</guid>

					<description><![CDATA[<p>DACPAC file can be used to deploy database code using CICD tools like Azure DevOps. Learn how to open DACPAC file in Visual Studio.</p>
<p>The post <a href="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/">Open DACPAC File in Visual Studio</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DACPAC refers to a Data-Tier Application Package, which is essentially a compressed file that includes a data model or database objects. It is compatible with SQL Server Data Tools (SSDT) database projects and is used for versioning and deploying SQL Server or Azure SQL databases with the help of Azure DevOps CI/CD pipelines. DACPAC files are crucial when migrating your on-premise SQL Server database to Azure SQL database. Additionally, they can be utilized to create projects in Visual Studio and deploy database code using CI/CD tools such as Azure DevOps. This article will show how to open DACPAC file in Visual Studio.</p>



<h2 class="wp-block-heading">How to create a DACPAC file.</h2>



<p class="wp-block-paragraph">To create a DACPAC file from an existing SQL Server or Azure SQL database, you must ensure certain things. Refer to this <a href="https://azureops.org/articles/dacpac-sql-server-database/" target="_blank" rel="noreferrer noopener">post</a> to learn how to create a DACPAC file.</p>



<p class="wp-block-paragraph">Follow the below steps to open DACPAC file in Visual Studio.</p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph"><strong>Pre-requisites</strong>:<br>1. Visual Studio with <a href="https://learn.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-ver16" target="_blank" rel="noreferrer noopener">SSDT</a> extension installed. </p>



<h3 class="wp-block-heading">1. Create a new blank project in Visual Studio</h3>



<p class="wp-block-paragraph">1. Open Visual Studio, click on the File menu item, and Select &#8216;New&#8217; &#8211; &gt; &#8216;Project&#8217; as shown in the below image.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="704" data-attachment-id="6685" data-permalink="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/image-4-4/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?fit=1449%2C850&amp;ssl=1" data-orig-size="1449,850" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-4" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?fit=1200%2C704&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?resize=1200%2C704&#038;ssl=1" alt="how to open DACPAC file in Visual Studio" class="wp-image-6685" style="width:1006px;height:590px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?resize=1200%2C704&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?resize=300%2C176&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?resize=1057%2C620&amp;ssl=1 1057w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?resize=768%2C451&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?resize=450%2C264&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?resize=600%2C352&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-4.png?w=1449&amp;ssl=1 1449w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<p class="wp-block-paragraph">2. Select the project type as &#8216;SQL Server Database Project&#8217;. Provide the name to the project and Click OK.</p>



<p class="wp-block-paragraph">This should create a blank database project in Visual Studio.</p>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h3 class="wp-block-heading">2. Import DACPAC file into the database project</h3>



<p class="wp-block-paragraph">1. Right-click on the project we just created in the previous step. Click &#8216;Import&#8217; &#8211; &gt; &#8216;Data tier Application (*.dacpac)&#8217; option.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="928" height="366" data-attachment-id="6686" data-permalink="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/image-5-3/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?fit=928%2C366&amp;ssl=1" data-orig-size="928,366" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-5" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?fit=928%2C366&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?resize=928%2C366&#038;ssl=1" alt="" class="wp-image-6686" style="width:757px;height:299px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?w=928&amp;ssl=1 928w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?resize=300%2C118&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?resize=768%2C303&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?resize=450%2C177&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-5.png?resize=600%2C237&amp;ssl=1 600w" sizes="(max-width: 928px) 100vw, 928px" /></a></figure>



<p class="wp-block-paragraph">2. Browse the .dacpac file you want to unpack in the Visual Studio project. Click Start to begin the import process.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="573" data-attachment-id="6687" data-permalink="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/image-6-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?fit=1591%2C760&amp;ssl=1" data-orig-size="1591,760" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-6" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?fit=1200%2C573&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?resize=1200%2C573&#038;ssl=1" alt="how to open DACPAC file in Visual Studio" class="wp-image-6687" style="object-fit:cover;width:1006px;height:484px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?resize=1200%2C573&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?resize=300%2C143&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?resize=768%2C367&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?resize=1536%2C734&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?resize=450%2C215&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?resize=600%2C287&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-6.png?w=1591&amp;ssl=1 1591w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<p class="wp-block-paragraph">3. if there are no errors, you will see the progress shown in the image below.</p>



<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="562" data-attachment-id="6688" data-permalink="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/image-7-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?fit=1623%2C760&amp;ssl=1" data-orig-size="1623,760" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-7" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?fit=1200%2C562&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?resize=1200%2C562&#038;ssl=1" alt="" class="wp-image-6688" style="object-fit:cover;width:1006px;height:468px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?resize=1200%2C562&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?resize=300%2C140&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?resize=768%2C360&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?resize=1536%2C719&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?resize=450%2C211&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?resize=600%2C281&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-7.png?w=1623&amp;ssl=1 1623w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<p class="wp-block-paragraph">4. You should see all database objects from the DACPAC under the project.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-8.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="547" height="418" data-attachment-id="6690" data-permalink="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/image-8-2/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-8.png?fit=547%2C418&amp;ssl=1" data-orig-size="547,418" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image-8" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-8.png?fit=547%2C418&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-8.png?resize=547%2C418&#038;ssl=1" alt="" class="wp-image-6690" style="width:363px;height:277px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-8.png?w=547&amp;ssl=1 547w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-8.png?resize=300%2C229&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/09/image-8.png?resize=450%2C344&amp;ssl=1 450w" sizes="(max-width: 547px) 100vw, 547px" /></a></figure>



<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. It is advisable to always review the content of a DACPAC file before publishing it to a SQL Server or Azure SQL database.<br>2. If Visual Studio is not installed on your system and you wish to access the contents of a DACPAC file, you can do so by renaming the file with a .zip extension. This will enable you to extract the contents of the file and directly view the database objects in File Explorer.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/how-to-open-dacpac-file-in-visual-studio/">Open DACPAC File in Visual Studio</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6678</post-id>	</item>
		<item>
		<title>Disable and Enable triggers in Azure Data Factory using PowerShell</title>
		<link>https://azureops.org/articles/disable-and-enable-triggers-in-azure-data-factory/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Mon, 31 Jul 2023 19:59:29 +0000</pubDate>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Data Factory]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[azure data factory ci/cd]]></category>
		<category><![CDATA[azure data factory triggers]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=6310</guid>

					<description><![CDATA[<p>This article will provide step-by-step instructions to enable and disable triggers in Azure Data Factory using PowerShell.</p>
<p>The post <a href="https://azureops.org/articles/disable-and-enable-triggers-in-azure-data-factory/">Disable and Enable triggers in Azure Data Factory using PowerShell</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Companies depend on efficient data processing and management systems to make informed decisions in the fast-moving business world. <a href="https://learn.microsoft.com/en-us/azure/data-factory/introduction" target="_blank" rel="noreferrer noopener">Azure Data Factory</a> (ADF) is a highly effective cloud-based data integration service that allows organizations to orchestrate and automate data workflows easily. One of the critical features of ADF is the ability to activate and deactivate triggers, which are essential for controlling the execution of data pipelines and factory maintenance. This article will provide step-by-step instructions to enable and disable triggers in Azure Data Factory.</p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph"><strong>Pre-requisites:</strong><br>1. Access to Data Factory resources in the Azure portal.<br>2. Az PowerShell&nbsp;<a href="https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-7.1.0" target="_blank" rel="noreferrer noopener">module</a>&nbsp;installed on the local machine.</p>



<h2 class="wp-block-heading">Understanding Azure Data Factory Triggers</h2>



<p class="wp-block-paragraph">Azure Data Factory utilizes triggers to initiate data pipeline executions based on specific conditions automatically. These conditions can be set on a schedule, event, or through manual intervention. Triggers play a crucial role in ensuring that data pipelines run at the correct time, keeping data processing up-to-date and accurate. Turning triggers on-demand on and off gives data engineers the flexibility to control the data flow efficiently.</p>



<h2 class="wp-block-heading">Script to disable and enable triggers in Azure Data Factory</h2>



<p class="wp-block-paragraph">Use the below PowerShell script to disable all the triggers in Azure Data Factory.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: powershell; gutter: false; title: ; notranslate">
$adf_name = &#039;adfname&#039;
$resourcegroup_name = &#039;resourcegroupname&#039;

$triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $adf_name -ResourceGroupName $resourcegroup_name; 
$triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName $resourcegroup_name -DataFactoryName $adf_name -Name $_.name -Force }
</pre></div>


<p class="wp-block-paragraph">Use the below PowerShell script to enable all the triggers in Azure Data Factory.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: powershell; gutter: false; title: ; notranslate">
$adf_name = &#039;adfname&#039;
$resourcegroup_name = &#039;resourcegroupname&#039;

$triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $adf_name -ResourceGroupName $resourcegroup_name; 
$triggersADF | ForEach-Object { Start-AzDataFactoryV2Trigger -ResourceGroupName $resourcegroup_name -DataFactoryName $adf_name -Name $_.name -Force }
</pre></div>


<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">Manage ADF triggers in YAML based Azure DevOps pipeline</h2>



<p class="wp-block-paragraph">Use the script below to enable and disable triggers in adf using a YAML-based]deployment pipeline in Azure DevOps.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; gutter: false; title: ; notranslate">
          deploy:  #Configure steps under deploy hook.
            steps:
              #task to disable triggers in Azure Data Factory.
              - task: AzurePowerShell@5     
                displayName: Stop Triggers
                inputs:
                  azureSubscription: &#039;subscriptionname&#039;
                  ScriptType: &#039;InlineScript&#039;
                  Inline: |
                    $triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName &quot;$(dataFactoryName)&quot; -ResourceGroupName &quot;$(resourceGroup)&quot;; 
                    $triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName &quot;$(resourceGroup)&quot; -DataFactoryName &quot;$(dataFactoryName)&quot; -Name $_.name -Force }
                  azurePowerShellVersion: &#039;LatestVersion&#039;             
             
              #task to enable triggers in Azure Data Factory.
              - task: AzurePowerShell@5    
                displayName: Start Triggers
                inputs:
                  azureSubscription: &#039;subscriptionname&#039;
                  ScriptType: &#039;InlineScript&#039;
                  Inline: |
                    $triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName &quot;$(dataFactoryName)&quot; -ResourceGroupName &quot;$(resourceGroup)&quot;;
                    $triggersADF | ForEach-Object { Start-AzDataFactoryV2Trigger -ResourceGroupName &quot;$(resourceGroup)&quot; -DataFactoryName &quot;$(dataFactoryName)&quot; -Name $_.name -Force }
                  azurePowerShellVersion: &#039;LatestVersion&#039;

</pre></div>


<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. It is important to disable triggers before deploying data factory code using Azure DevOps pipelines. Refer to <a href="https://azureops.org/articles/automated-azure-data-factory-publish/" target="_blank" rel="noreferrer noopener">this</a> article if you want to automate Azure data factory deployments using the DevOps pipeline.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/disable-and-enable-triggers-in-azure-data-factory/">Disable and Enable triggers in Azure Data Factory using PowerShell</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6310</post-id>	</item>
		<item>
		<title>Automate Confluent ksqlDB deployments with ksql-migrations</title>
		<link>https://azureops.org/articles/automate-onfluent-ksqldb-deployments/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Mon, 08 Aug 2022 09:46:33 +0000</pubDate>
				<category><![CDATA[Confluent]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[ksqlDB]]></category>
		<category><![CDATA[confluent ksql]]></category>
		<category><![CDATA[confluent-ksql-deployments]]></category>
		<category><![CDATA[ksql migrations]]></category>
		<category><![CDATA[ksql-migrations]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=2885</guid>

					<description><![CDATA[<p>Confluent Cloud provides ksqlDB, a streaming SQL engine for Kafka. It is an easy-to-use yet powerful interactive SQL interface for stream processing on Kafka, In this article, we will see how to automate Confluent ksqlDB deployments using ksql-migrations.</p>
<p>The post <a href="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/">Automate Confluent ksqlDB deployments with ksql-migrations</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Confluent Platform is a full-scale data streaming managed cloud service that enables us to access, store, and manage data as a continuous, real-time stream. Confluent Cloud provides <a href="https://docs.confluent.io/platform/current/ksqldb/index.html#ksql-home">ksqlDB</a>, a streaming SQL engine for Kafka. It is an easy-to-use yet powerful interactive SQL interface for stream processing on Kafka. This article will show how to automate Confluent ksqlDB deployments using <a href="https://docs.ksqldb.io/en/latest/operate-and-deploy/migrations-tool/" target="_blank" rel="noreferrer noopener">ksql-migrations</a>.</p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph"><strong>Pre-requisites:</strong><br>1. <a href="https://www.confluent.io/get-started/" target="_blank" rel="noreferrer noopener">Confluent accoun</a>t with a confluent cluster and ksqlDB cluster.<br>2. Confluent platform installed locally using <a href="https://docs.confluent.io/platform/current/installation/docker/installation.html" target="_blank" rel="noreferrer noopener">docker</a>.<br>3. <a href="https://docs.confluent.io/confluent-cli/current/install.html" target="_blank" rel="noreferrer noopener">Confluent CLI</a> installed locally.<br>4. A Basic understanding of the Confluent platform and KSQL. </p>



<h2 class="wp-block-heading">Setup GitHub repository</h2>



<p class="wp-block-paragraph">First thing first!</p>



<p class="wp-block-paragraph">1. Fork the git repository <a href="https://github.com/jzaralim">jzaralim</a>/<strong><a href="https://github.com/jzaralim/ksqldb-migrations-action" target="_blank" rel="noreferrer noopener">ksqldb-migrations-action</a></strong>. This repository has most of the things we need to implement CICD for ksqlDB.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="563" data-attachment-id="2897" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/fork-the-repo/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?fit=1426%2C669&amp;ssl=1" data-orig-size="1426,669" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Fork-the-repo" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?fit=1200%2C563&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?resize=1200%2C563&#038;ssl=1" alt="zaralim/ksqldb-migrations-action github repository." class="wp-image-2897" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?resize=1200%2C563&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?resize=450%2C211&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?resize=600%2C281&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?resize=300%2C141&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?resize=768%2C360&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Fork-the-repo.png?w=1426&amp;ssl=1 1426w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">2. Clone the above repository locally using any client tools like VS Code. </p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="656" data-attachment-id="2891" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/ksqldb-cicd-cloned-git-repo/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?fit=1901%2C1040&amp;ssl=1" data-orig-size="1901,1040" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="KSQLDB-CICD-Cloned-git-repo" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?fit=1200%2C656&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=1200%2C656&#038;ssl=1" alt="zaralim/ksqldb-migrations-action github repository cloned using VS Code." class="wp-image-2891" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=1200%2C656&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=450%2C246&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=600%2C328&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=300%2C164&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=1133%2C620&amp;ssl=1 1133w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=768%2C420&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?resize=1536%2C840&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/KSQLDB-CICD-Cloned-git-repo.png?w=1901&amp;ssl=1 1901w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<h2 class="wp-block-heading">Create a Confluent ksqlDB cluster API key.</h2>



<p class="wp-block-paragraph">Login to <a href="https://www.confluent.io/" target="_blank" rel="noreferrer noopener">confluent.io</a> and navigate to the confluent cluster and ksqlDB cluster. Click on CLI instructions as shown in the below image. These instructions are specific to your selected Kafka and ksqlDB clusters, so you can copy and paste them into the Confluent CLI.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="511" data-attachment-id="2892" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/ksqldb-cli-instructions/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?fit=1686%2C718&amp;ssl=1" data-orig-size="1686,718" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ksqldb-cli-instructions" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?fit=1200%2C511&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?resize=1200%2C511&#038;ssl=1" alt="Confluent ksqlDB CLI instructions." class="wp-image-2892" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?resize=1200%2C511&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?resize=450%2C192&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?resize=600%2C256&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?resize=300%2C128&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?resize=768%2C327&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?resize=1536%2C654&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-cli-instructions.png?w=1686&amp;ssl=1 1686w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">Follow the below steps to get the API key, API secret, and endpoint URL for the ksqlDB cluster.</p>



<p class="wp-block-paragraph">1. Log in to the Confluent CLI, </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
confluent login
</pre></div>


<p class="wp-block-paragraph">2. Set the context to your environment and cluster.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
confluent environment use env-v7ymd0
confluent kafka cluster use lkc-0xyop2
</pre></div>


<p class="wp-block-paragraph">3. Create an API key and secret for your ksqlDB cluster.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
confluent api-key create --resource lksqld-pgx9ro
</pre></div>


<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="966" height="502" data-attachment-id="2895" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/ksqldb-create-api-keys-using-confluent-cli/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?fit=966%2C502&amp;ssl=1" data-orig-size="966,502" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ksqldb-create-api-keys-using-confluent-cli" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?fit=966%2C502&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?resize=966%2C502&#038;ssl=1" alt="" class="wp-image-2895" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?w=966&amp;ssl=1 966w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?resize=450%2C234&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?resize=600%2C312&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?resize=300%2C156&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-create-api-keys-using-confluent-cli.gif?resize=768%2C399&amp;ssl=1 768w" sizes="(max-width: 966px) 100vw, 966px" /></figure>



<p class="wp-block-paragraph">4. Get the ksqlDB cluster endpoint URL.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="465" data-attachment-id="2899" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/ksqldb-server-endpoint-url-in-confluent-cloud/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?fit=1583%2C614&amp;ssl=1" data-orig-size="1583,614" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ksqldb-server-endpoint-url-in-confluent-cloud" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?fit=1200%2C465&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?resize=1200%2C465&#038;ssl=1" alt="Confluent ksqlDB cluster Endpoint url." class="wp-image-2899" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?resize=1200%2C465&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?resize=450%2C175&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?resize=600%2C233&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?resize=300%2C116&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?resize=768%2C298&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?resize=1536%2C596&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksqldb-server-endpoint-url-in-confluent-cloud.png?w=1583&amp;ssl=1 1583w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">Save this information somewhere, as we will use them in the below steps. </p>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">Initialize ksql-migrations metadata</h2>



<p class="wp-block-paragraph">The confluent ksqldb-migrations tool uses <strong>MIGRATION_EVENTS</strong> &amp; <strong>MIGRATION_SCHEMA_VERSIONS</strong> topics to maintain the deployment log for the deployments made through ksql-migrations. To create these topics in the confluent cluster, follow the below steps. </p>



<p class="wp-block-paragraph">1. Connect to the local ksqlDB-server docker container using bash. If you are using windows bash, you can execute the below command.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
docker-compose exec ksqldb-server bash
</pre></div>


<p class="wp-block-paragraph">The ksql-migrations tool is available with all ksqlDB versions starting from ksqlDB 0.17 or Confluent Platform 6.2.</p>



<p class="wp-block-paragraph">2. Execute the below command on the local ksqlDB-server container. </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
ksql-migrations new-project orders https://pksqld-zjyqd.westeurope.azure.confluent.cloud:443
</pre></div>


<p class="wp-block-paragraph">Here, <em>order</em>s is the project&#8217;s name, and <em>https://pksqlc-zjyqd.westeurope.azure.confluent.cloud:443</em> is the ksqldb cluster endpoint.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="967" height="500" data-attachment-id="2902" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/initialise-migration-metadata-in-ksqldbserver-local-container/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?fit=967%2C500&amp;ssl=1" data-orig-size="967,500" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Initialise-migration-metadata-in-ksqldbserver-local-container" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?fit=967%2C500&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?resize=967%2C500&#038;ssl=1" alt="" class="wp-image-2902" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?w=967&amp;ssl=1 967w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?resize=450%2C233&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?resize=600%2C310&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?resize=300%2C155&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Initialise-migration-metadata-in-ksqldbserver-local-container.gif?resize=768%2C397&amp;ssl=1 768w" sizes="(max-width: 967px) 100vw, 967px" /></figure>



<p class="wp-block-paragraph">The above command will create <em>order\migrations\ksql-migrations.properties</em> file under the home directory in the ksqldb-server container as shown in the below image.</p>



<p class="wp-block-paragraph">3. Edit the <code>ksql-migrations.properties</code> file with the following details. Values assigned to the variables are based on the name of the variables in the GitHub workflow file.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: yaml; title: ; notranslate">
ksql.server.url=${CONFLUENT_KSQLDB_ENDPOINT}
ksql.migrations.topic.replicas=3
ssl.alpn=true
ksql.auth.basic.username=${CONFLUENT_KSQLDB_API_KEY} 
ksql.auth.basic.password=${CONFLUENT_KSQLDB_API_SECRET}
ksql.migrations.dir.override=${CONFLUENT_MIGRATION_DIR}
</pre></div>


<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="509" data-attachment-id="2903" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/ksql-migration-properties-on-ksqldb-server/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?fit=1689%2C716&amp;ssl=1" data-orig-size="1689,716" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ksql-migration.properties-on-ksqldb-server" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?fit=1200%2C509&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?resize=1200%2C509&#038;ssl=1" alt="Edit ksql-migrations.properties file with settings related to confluent ksqlDB cluster." class="wp-image-2903" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?resize=1200%2C509&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?resize=450%2C191&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?resize=600%2C254&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?resize=300%2C127&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?resize=768%2C326&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?resize=1536%2C651&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration.properties-on-ksqldb-server.png?w=1689&amp;ssl=1 1689w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">4. Now, run the below command to initiate migration metadata in the confluent cloud based on the configurations set in the above steps.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
ksql-migrations initialize-metadata -c orders/ksql-migrations.properties
</pre></div>


<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="972" height="509" data-attachment-id="2906" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/migration-medata-created-in-confluent-cloud/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?fit=972%2C509&amp;ssl=1" data-orig-size="972,509" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Migration-medata-created-in-confluent-cloud" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?fit=972%2C509&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?resize=972%2C509&#038;ssl=1" alt="" class="wp-image-2906" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?w=972&amp;ssl=1 972w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?resize=450%2C236&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?resize=600%2C314&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?resize=300%2C157&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Migration-medata-created-in-confluent-cloud.png?resize=768%2C402&amp;ssl=1 768w" sizes="(max-width: 972px) 100vw, 972px" /></figure>



<p class="wp-block-paragraph">You should be able to see the below topic in the Confluent cloud.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="359" data-attachment-id="2907" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/4-initiate-ksql-migration-confirmation/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?fit=1812%2C542&amp;ssl=1" data-orig-size="1812,542" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="4.Initiate-ksql-migration-confirmation" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?fit=1200%2C359&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?resize=1200%2C359&#038;ssl=1" alt="" class="wp-image-2907" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?resize=1200%2C359&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?resize=450%2C135&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?resize=600%2C179&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?resize=300%2C90&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?resize=768%2C230&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?resize=1536%2C459&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/4.Initiate-ksql-migration-confirmation.png?w=1812&amp;ssl=1 1812w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="has-background wp-block-paragraph" style="background-color:#d2d0f0"><strong>Note: </strong>GitHub collaboration branch name and the workflow trigger branch name should be the same. </p>



<h2 class="wp-block-heading">Set up GitHub secrets for GitHub actions.</h2>



<p class="wp-block-paragraph"><a href="https://docs.github.com/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets">Create GitHub secrets</a>&nbsp;for the ksqlDB cluster endpoint, API key, and API secret, respectively named:</p>



<ul class="wp-block-list">
<li class=""><code>CONFLUENT_KSQLDB_ENDPOINT</code></li>



<li class=""><code>CONFLUENT_KSQLDB_API_KEY</code></li>



<li class=""><code>CONFLUENT_KSQLDB_API_SECRET</code></li>
</ul>



<p class="wp-block-paragraph">You have retrieved these secrets in the above steps.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1112" height="421" data-attachment-id="2909" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/create-github-secrets-for-confluent-ksqldb-migrations/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?fit=1112%2C421&amp;ssl=1" data-orig-size="1112,421" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Create-github-secrets-for-confluent-ksqldb-migrations" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?fit=1112%2C421&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?resize=1112%2C421&#038;ssl=1" alt="Set github secrets for confluent cloud." class="wp-image-2909" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?w=1112&amp;ssl=1 1112w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?resize=450%2C170&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?resize=600%2C227&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?resize=300%2C114&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/Create-github-secrets-for-confluent-ksqldb-migrations.gif?resize=768%2C291&amp;ssl=1 768w" sizes="(max-width: 1112px) 100vw, 1112px" /></figure>



<h2 class="wp-block-heading">We are all set to automate Confluent ksqlDB deployments</h2>



<p class="wp-block-paragraph">It&#8217;s time to verify our setup. Start committing changes to the migrations folder in the GitHub repository.  For this demo, we will commit the three migrations files inside the <strong><a href="https://github.com/jzaralim/ksqldb-migrations-action">ksqldb-migrations-action</a></strong> Github repository.</p>



<ol class="wp-block-list">
<li class="">After the initial commit, the migrate-cloud-ksqldb workflow will be triggered. It will deploy the initial three ksql migration versions to the Confluent cloud cluster.</li>



<li class="">After migration ORDER_EVENTS stream would look like in the below image.</li>
</ol>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="466" data-attachment-id="2912" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/ksql-migration-first-commit-deployment/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?fit=1200%2C466&amp;ssl=1" data-orig-size="1200,466" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ksql-migration-first-commit-deployment" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?fit=1200%2C466&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?resize=1200%2C466&#038;ssl=1" alt="" class="wp-image-2912" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?w=1200&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?resize=450%2C175&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?resize=600%2C233&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-first-commit-deployment.gif?resize=768%2C298&amp;ssl=1 768w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">Let&#8217;s say, we need to add a column DESCRIPTION to the ORDER_EVENTS stream.  </p>



<ol class="wp-block-list">
<li class="">Add a new version file V000004__add_column_to_order_events.sql. </li>



<li class="">Commit the new version file, triggering a Github action, as shown in the image below.</li>
</ol>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="483" data-attachment-id="2914" data-permalink="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/ksql-migration-incremental-commit-deployment/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?fit=1200%2C483&amp;ssl=1" data-orig-size="1200,483" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ksql-migration-incremental-commit-deployment" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?fit=1200%2C483&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?resize=1200%2C483&#038;ssl=1" alt="Automate ksqlDB deployments " class="wp-image-2914" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?w=1200&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?resize=450%2C181&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?resize=600%2C242&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?resize=300%2C121&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/08/ksql-migration-incremental-commit-deployment.gif?resize=768%2C309&amp;ssl=1 768w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. The steps mentioned in this article must be done only once by a DevOps person, and individual developers need only to commit changes to the migrations folder. <br>2. Format of the migrations version file is Vxxxxxx__name_of_the_file.sql. That means &#8216;V&#8217; followed by an incremental six digits number with leading 0s. E.g., V000012__new_streams.SQL.<br>3. It is advisable to add the IF NOT EXISTS clause in CREATE STREAM/TABLE ksql statements. And IF EXISTS in DROP STREAM/TABLE ksql statements. This will avoid failures of version files in case of object availability conflict in the ksqlDB cluster. <br>4.  <a href="https://azureops.org/articles/filter-a-kafka-stream-by-date/" target="_blank" rel="noreferrer noopener">Learn</a> how to filter kstream by rowtime using ksql .</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/automate-onfluent-ksqldb-deployments/">Automate Confluent ksqlDB deployments with ksql-migrations</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2885</post-id>	</item>
		<item>
		<title>Export and Import Azure Data Factory</title>
		<link>https://azureops.org/articles/export-and-import-azure-data-factory/</link>
		
		<dc:creator><![CDATA[Kunal Rathi]]></dc:creator>
		<pubDate>Fri, 14 Jan 2022 15:03:53 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Data Factory]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[export and import azure data factory]]></category>
		<category><![CDATA[migrate data factory]]></category>
		<guid isPermaLink="false">https://azureops.org/?p=1648</guid>

					<description><![CDATA[<p>Migrate Azure data factory from one resource group to another using these 3 simple steps. </p>
<p>The post <a href="https://azureops.org/articles/export-and-import-azure-data-factory/">Export and Import Azure Data Factory</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Azure Data Factory is an Azure cloud ETL service for serverless data integrations and orchestrations. This article will describe how to export and import Azure Data Factory between different Azure resource groups or environments. </p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph"><strong>Pre-requisites</strong><br>1. Azure subscription with access to deploy Azure resources.<br>2. Az PowerShell <a href="https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-7.1.0" target="_blank" rel="noreferrer noopener">module</a> installed on the local machine.</p>



<h2 class="wp-block-heading">Export Azure Data Factory</h2>



<p class="wp-block-paragraph">Let&#8217;s first export an existing data factory ARM template. Follow the below steps to do it. </p>



<ol class="wp-block-list">
<li><strong>Connect</strong> to the Azure <a href="http://portal.azure.com/" target="_blank" rel="noreferrer noopener">portal</a> and open-source Azure Data Factory Studio.</li>



<li>Navigate to <strong>Manage</strong> options.</li>



<li>Click on the <strong>Export</strong> button under &#8216;Export ARM Template&#8217; as shown in the above image. </li>



<li>This will download Azure Data Factory code in a  file named arm_template.zip. <strong>Unzip</strong> the file. Files of our interest are
<ul class="wp-block-list">
<li>ARMTemplateForFactory.json &#8211; This file contains the entire Data Factory code.</li>



<li>ARMTemplateParametersForFactory.json &#8211; This file contains parameters for the Data Factory.</li>
</ul>
</li>
</ol>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="841" height="216" data-attachment-id="4492" data-permalink="https://azureops.org/articles/export-and-import-azure-data-factory/azure-data-factory-arm-template-files/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?fit=841%2C216&amp;ssl=1" data-orig-size="841,216" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Azure-data-factory-ARM-template-files" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?fit=841%2C216&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?resize=841%2C216&#038;ssl=1" alt="azure data factory download" class="wp-image-4492" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?w=841&amp;ssl=1 841w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?resize=450%2C116&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?resize=600%2C154&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?resize=300%2C77&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/11/Azure-data-factory-ARM-template-files.png?resize=768%2C197&amp;ssl=1 768w" sizes="(max-width: 841px) 100vw, 841px" /></figure>



<h2 class="wp-block-heading">Transform ARM template</h2>



<p class="wp-block-paragraph">Let&#8217;s change the factory parameter values in the ARMTemplateParametersForFactory.json file as per the target environment. The mandatory change you need to make in the parameter file is <strong>factoryName</strong>. Perhaps, it is also a good idea to set other factory parameters in this file.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="223" data-attachment-id="1664" data-permalink="https://azureops.org/articles/export-and-import-azure-data-factory/arm-tempalte-parameter-edit/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?fit=1802%2C335&amp;ssl=1" data-orig-size="1802,335" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="arm-tempalte-parameter-edit" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?fit=1200%2C223&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit-1200x223.png?resize=1200%2C223&#038;ssl=1" alt="adf import export" class="wp-image-1664" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?resize=1200%2C223&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?resize=450%2C84&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?resize=600%2C112&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?resize=300%2C56&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?resize=768%2C143&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?resize=1536%2C286&amp;ssl=1 1536w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/arm-tempalte-parameter-edit.png?w=1802&amp;ssl=1 1802w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="has-background wp-block-paragraph" style="background-color:#d2d0f0"><strong>Note:</strong> Include Global parameters in the ARM template is deprecated and only available through git integration. You may need to manually recreate global parameters in the target data factory once the import is done. </p>



<figure class="is-style-default wp-block-image size-large is-resized"><a href="https://marketplace.visualstudio.com/items?itemName=AzureOps.ssiscatalogerpro&amp;ssr=false#overview" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1200" height="148" data-attachment-id="4839" data-permalink="https://azureops.org/articles/azure-data-studio-for-sql-developers/scmw-horizontal-ad/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1326%2C163&amp;ssl=1" data-orig-size="1326,163" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCMW-horizontal-ad" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?fit=1200%2C148&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&#038;ssl=1" alt="" class="wp-image-4839" style="object-fit:cover;width:811px;height:99px" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=1200%2C148&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=450%2C55&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=600%2C74&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=300%2C37&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?resize=768%2C94&amp;ssl=1 768w, https://i0.wp.com/azureops.org/wp-content/uploads/2023/01/SCMW-horizontal-ad.png?w=1326&amp;ssl=1 1326w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>



<h2 class="wp-block-heading">Import Azure Data Factory</h2>



<ol class="wp-block-list">
<li><strong>Open PowerShell ISE</strong> and copy the below script in the new window. Ensure you have installed the Az module as mentioned in the prerequisites.</li>
</ol>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: powershell; highlight: [1,2,3,4,5,6,7,8]; title: ; quick-code: false; notranslate">
$templateFile = &quot;Full path of ARMTemplateForFactory.json&quot;
$parameterFile=&quot;Full path of ARMTemplateParametersForFactory.json&quot;
$deploymentName = &quot;Name of the deployment&quot;
$tenantId = &quot;Tenant id&quot;
$subscriptionName = &quot;Subscription name&quot;
$resourceGroupName = &quot;Name of the resource group&quot;
$factoryName = &quot;target factory name&quot;
$location = &quot;Location of resource group&quot;

#Connect to Azure account
Connect-AzAccount -Tenant $tenantId -Subscription $subscriptionName

#Deploy Data Factory
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -ResourceGroupName $resourceGroupName `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile `
  -Tag @{&quot;key1&quot;=&quot;value1&quot;; &quot;key2&quot;=&quot;value2&quot;;}

#Generate managed identity for Data Factory.
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Name $factoryName -Location $location
</pre></div>


<p class="wp-block-paragraph">2. Provide values to the variables below <br><code>$templateFile </code>and <code>$parameterFile</code> variables refer to the files we have downloaded and transformed in the above steps. <br>$tenantId &#8211; Tenant id of the target subscription. You can get tenantId details from <a href="https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade" target="_blank" rel="noreferrer noopener">here</a>.<br>$subscriptionName-Subscription name of the target resource group.<br>$resourceGroupName-Target resource group.<br>$factoryName &#8211; Name of the target Data Factory. Here, we need to ensure that the name is the same one we used in the ARMTemplateParametersForFactory.json file.<br><code>$location</code>-Location of the target resource group.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1200" height="557" data-attachment-id="1677" data-permalink="https://azureops.org/articles/export-and-import-azure-data-factory/import-azure-data-factory-1/" data-orig-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?fit=1200%2C557&amp;ssl=1" data-orig-size="1200,557" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Import-azure-data-factory-1" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?fit=1200%2C557&amp;ssl=1" src="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?resize=1200%2C557&#038;ssl=1" alt="Migrate Azure data factory from one resource group to another." class="wp-image-1677" srcset="https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?w=1200&amp;ssl=1 1200w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?resize=450%2C209&amp;ssl=1 450w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?resize=600%2C279&amp;ssl=1 600w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?resize=300%2C139&amp;ssl=1 300w, https://i0.wp.com/azureops.org/wp-content/uploads/2022/01/Import-azure-data-factory-1.gif?resize=768%2C356&amp;ssl=1 768w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">That&#8217;s it! You should see the Data Factory in the target resource group if the above script executes without error.</p>



<p class="wp-block-paragraph">We have seen how adf import export can  be done using PowerShell ISE and Azure Data Factory Studio in Azure portal.</p>



<p class="has-background wp-block-paragraph" style="background-color:#bcefca"><strong>Pro tips:</strong><br>1. Azure Data Factory export from the Azure portal may not include global parameters in the arm template unless you have git integration enabled.<br>2. If you want to edit data factory triggers before the deployment, you can edit them in the arm_template.json file under the resources node.<br>3. If your organization has defined a policy to add tags with Azure resources, you need to include them as a parameter of the New-AzResourceGroupDeployment command.<br>4. You can refer to <a href="https://azureops.org/articles/automated-azure-data-factory-publish/" target="_blank" rel="noreferrer noopener">this</a> post if you want to enable automatic publishing and deployment of the Data Factory code with Azure DevOps.<br>5. <a href="https://azureops.org/articles/export-and-import-powerapps/" target="_blank" rel="noreferrer noopener">Learn</a> how to export and import PowerApps package in just a few clicks.</p>



<h2 class="wp-block-heading">See more</h2>



<iframe width="700" height="394" src="https://www.youtube.com/embed/t2h6xNVFQkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="is-style-fill wp-block-button"><a class="wp-block-button__link has-white-color has-blush-light-purple-gradient-background has-text-color has-background has-link-color wp-element-button" href="https://azureops.org/product/ssis-catalog-migration-wizard-pro/" target="_blank" rel="noreferrer noopener">Download Now</a></div>
</div>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
<p>The post <a href="https://azureops.org/articles/export-and-import-azure-data-factory/">Export and Import Azure Data Factory</a> appeared first on <a href="https://azureops.org">AzureOps</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1648</post-id>	</item>
	</channel>
</rss>
