Qlik to Power BI Migration
July 16, 2026 ยท View on GitHub
Migrate Qlik Sense applications to Power BI .pbip projects with one command, while keeping the output structured, validated, and easy to inspect.
Migration Flow
flowchart LR A[Qlik App\n.qvf / .json / .qvw] --> B[Extraction\nqlik_export/] B --> C[Conversion\nDAX + Power Query M + TMDL] C --> D[Validation\nSchema + relationship + Desktop openability] D --> E[Power BI Project\n.pbip + SemanticModel + Report] E --> F[Comparison & Lineage\nHTML reports]
Architecture
flowchart TB
subgraph Qlik
A[Qlik App\n.qvf / .json / .qvw]
B[Extraction Layer\nqlik_export/]
end
subgraph PowerBI
C[Conversion Layer\nDAX + M + TMDL]
D[Validation Layer\nDesktop openability + QA]
E[Generated Project\n.pbip + Report + SemanticModel]
end
subgraph Review
F[Comparison Report]
G[Data Prep Lineage]
H[End-to-End Lineage]
end
A --> B --> C --> D --> E
E --> F
E --> G
E --> H
At A Glance
- ๐งญ Input:
.qvf,.json, or.qvwwith converted siblings - ๐งฑ Output: Power BI
.pbipprojects with Semantic Model and Report folders - ๐ Workflow: extraction โ conversion โ validation โ Desktop openability checks
- ๐งช Quality gates: schema validation, DAX checks, M checks, relationship checks, and post-generation validation
- ๐ Parity-friendly docs: clear CLI entry points, report artifacts, and lineage sections
Who It's For
- ๐งช Migration engineers who need reproducible conversion and validation runs
- ๐ BI developers who want the generated project to stay readable in Power BI Desktop
- ๐งญ Reviewers who need comparison, lineage, and openability evidence in one place
- โ๏ธ Automation users who want a CLI-first workflow for batch runs and CI
Input / Output
| Stage | What It Means | Artifact |
|---|---|---|
| Input | Qlik source app or export | .qvf, .json, .qvw |
| Extraction | Parse Qlik objects and script | qlik_export/ JSON files |
| Conversion | Build model and report layers | DAX, Power Query M, TMDL |
| Validation | Check structure and openability | QA and Desktop gate results |
| Output | Power BI project package | .pbip, .SemanticModel, .Report |
| Review | Inspect what changed and why | Comparison and lineage HTML reports |
Why This Project
This repository is designed for repeatable Qlik-to-Power-BI migration work, with a presentation style closer to a polished product README than a raw tool dump.
- โจ Clear first-run path for new users
- ๐ ๏ธ Direct CLI usage for automation and batch migration
- ๐ Report artifacts that make migration quality visible
- ๐งฉ Lineage, comparison, and validation outputs that support review workflows
Installation
Create a virtual environment and install the development dependencies:
python -m venv venv
venv\Scripts\activate
pip install -e ".[dev]"
Quick Start
1. Migrate one app
python migrate.py app.qvf
2. Migrate a folder
python migrate.py ./exports
3. Send output somewhere else
python migrate.py app.qvf --out ./output
Input routing, binary model discovery, many-to-many bridge generation, validation, repair, and Power BI Desktop openability checks are automatic.
Core Capabilities
- ๐ง Qlik expressions to DAX conversion
- ๐ Qlik load script to Power Query M conversion
- ๐งฑ TMDL semantic model generation
- ๐ผ๏ธ Visual mapping to PBIR report layout
- ๐ก๏ธ Validation, QA, and deployment workflows
- ๐ Comparison and lineage reports for review and cutover
Output
A successful run generates a Power BI project:
artifacts/powerbi_projects/<AppName>/
<AppName>.pbip
<AppName>.SemanticModel/
<AppName>.Report/
Open the .pbip directly in Power BI Desktop (Developer Mode).
Reports And Lineage
- ๐ comparison_report.html โ side-by-side migration comparison
- ๐งฌ End-to-end lineage โ source field โ M โ DAX โ TMDL โ visual
- ๐งช Data preparation lineage โ Qlik script flow and Power Query M steps
- ๐งฐ Desktop openability checks โ generated projects are tested against Power BI Desktop behavior
Documentation
Start with the documentation hub:
Most used guides:
Useful lineage and validation references:
Testing
The repository includes more than 2,000 automated tests covering extraction, conversion, generation, validation, and Power BI Desktop openability.
# Run tests
python -m pytest tests/ -q
# Focused CLI tests
python -m pytest tests/test_new_cli_flags.py tests/test_simple_mode.py -q
Project Shape
migrate.pyโ main migration CLIqlik_export/โ extraction and conversion layerpowerbi_import/โ Power BI generation and validation layerartifacts/โ generated projects, reports, and run outputsdocs/โ guides, parity notes, and roadmap material
License
MIT