Implement and Manage an Analytics Solution · Topic 2 of 5

Lifecycle Management with Git, Database Projects and Deployment Pipelines

DP-700 lifecycle management: Git integration with Azure DevOps or GitHub, SQL database projects for warehouses, and deployment pipelines with rules.

  • 5 min
  • Includes a diagram
In a nutshell
  • Git integration supports Azure DevOps and GitHub; one workspace connects to one branch and folder.
  • Commit sends workspace changes to Git; Update brings Git changes into the workspace.
  • Only item definitions move; lakehouse tables and warehouse rows are never copied.

What it is

Lifecycle management moves Fabric items from development to production in a controlled way. Git integration puts item definitions under version control, database projects manage warehouse schema as code, and deployment pipelines promote content between workspaces that act as stages.

Git and deployment pipelines move definitions, not data. A lakehouse arrives in the next stage as an item without its tables, and you load data there with your own processes.

Developer workspacecommitGit branchpull requestMain branchsyncDev stagedeployTest stagedeployProduction stage

How it works

Version control with Git integration

A workspace admin connects the workspace to Azure DevOps (Azure Repos) or GitHub, choosing an organization, repository, branch and folder. One workspace connects to one branch at a time.

ActionDirectionMeaning
CommitWorkspace to GitSaves changed item definitions to the branch
UpdateGit to workspaceApplies changes made in the branch to the items
Branch outGit to a new workspaceCreates a new branch and a workspace connected to it

The Source control panel shows which items have uncommitted changes and which have incoming updates. If the same item changed on both sides, you resolve the conflict before you can commit, for example by keeping one version or by fixing it in Git.

Each item is stored as a folder of text files. A notebook is saved as source code, a pipeline as JSON, and a warehouse as a SQL database project, so changes are readable in a pull request.

A common pattern: each developer works in a private workspace on a feature branch, opens a pull request into main, and the shared development workspace is connected to main.

Database projects

A SQL database project describes a warehouse (or SQL database) as a set of CREATE scripts plus a project file. You get one by connecting the warehouse to Git or by downloading the project from the warehouse, then edit it in VS Code or Visual Studio with the SQL Database Projects tooling.

Building the project validates the schema and produces a .dacpac file. Publishing the dacpac compares it with the target warehouse and applies only the changes needed.

-- Tables/dbo.DimCustomer.sql inside the project
CREATE TABLE dbo.DimCustomer
(
    CustomerKey  INT          NOT NULL,
    CustomerID   VARCHAR(20)  NOT NULL,
    CustomerName VARCHAR(200) NOT NULL,
    City         VARCHAR(100) NULL
);
SqlPackage /Action:Publish /SourceFile:bin/Debug/SalesDW.dacpac /TargetConnectionString:"<warehouse connection string>"

Database projects suit teams that already use SQL Server tooling, need schema compare, or run deployments from Azure DevOps or GitHub Actions.

Deployment pipelines

Lifecycle in Fabric: the development workspace syncs with a Git repository through Git integration, and a deployment pipeline compares and deploys items from Development to Test and then to Production, applying deployment rules for stage-specific values. A deployment pipeline has 2 to 10 stages; the default is Development, Test and Production. Each stage is assigned one workspace on a Fabric capacity.

FeatureWhat it does
CompareShows items that are new, different or only in one stage
DeployCopies all or selected items to the next stage
Deployment rulesChange stage-specific values, such as a semantic model's data source or a notebook's default lakehouse
AutobindingRepoints items to their equivalents in the target stage, such as a report to the semantic model of that stage
Deployment historyRecords who deployed what and when

For values a pipeline or notebook reads at run time, such as a connection or a folder name per stage, a variable library holds one value set per stage. Deployment pipelines and Git can be combined: Git for development history, deployment pipelines for promotion.

A worked example

A team builds notebooks, a lakehouse and a pipeline. Development notebooks point at LH_Dev, but in production they must use LH_Prod. The data in LH_Dev is test data that must never reach production.

They create a deployment pipeline with Development, Test and Production stages and set a default lakehouse deployment rule on each notebook in Test and Production. Deploying copies only definitions, so the test data stays behind, and the production lakehouse is loaded by the production pipeline run.

How the exam asks about this

  • "Track every change to notebooks and roll back a bad change." Connect the workspace to Git and commit.
  • "Promote items from test to production without copying data, and use a different data source in production." Deployment pipeline with deployment rules.
  • "Manage the warehouse schema in Visual Studio Code and deploy only the differences." SQL database project published as a dacpac.

What to remember for the exam

  • Git integration supports Azure DevOps and GitHub; one workspace connects to one branch and folder.
  • Commit sends workspace changes to Git; Update brings Git changes into the workspace.
  • Only item definitions move; lakehouse tables and warehouse rows are never copied.
  • Deployment pipelines have 2 to 10 stages, each mapped to one workspace.
  • Deployment rules and variable libraries handle values that differ between stages.
Watch out

Connecting a workspace to Git is a workspace admin task. A Contributor can commit and update an already connected workspace but cannot set up or change the connection.

Common mistakes

Expecting deployment to move data. Deployment pipelines and Git carry definitions only; plan a load in each stage.

Hard-coding stage values in notebooks and pipelines. Use deployment rules or a variable library so the same item works in every stage.

Editing items in a connected workspace and forgetting to commit. The changes exist only in the workspace until you commit, and an Update can conflict with them.

Check yourself

  • Which Git providers can a Fabric workspace connect to?

    Azure DevOps (Azure Repos) and GitHub.

  • What does building a SQL database project produce?

    A dacpac file, which is published to the target warehouse to apply only the schema differences.

  • How do you make a notebook use a different default lakehouse in the production stage?

    Set a default lakehouse deployment rule on the notebook in the production stage of the deployment pipeline.

Topic 2 of 5 in Implement and Manage an Analytics Solution

Test yourself on Implement and Manage an Analytics Solution

The full Microsoft DP-700 question bank has 645 questions, with timed practice exams and an explanation for every answer.

This study guide is independent and is not affiliated with, endorsed by, or sponsored by Microsoft. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.