Migrate dashboards between projects
Copy a dashboard and its charts between Qyra projects or instances with the CLI
A common use of content as code is copying a dashboard from one place to another — from a project on one Qyra instance to a project on another instance, or between two projects on the same instance. The steps below walk through the full round-trip.
To move a dashboard between two projects on the same instance where one is configured as the other's upstream, promoting content does the same job from the UI, without the CLI.
Example scenario: you want to copy a dashboard from a project on your dedicated instance (acme.qyraflow.com) to a project on app.qyraflow.com.
Before you start
- Install the Qyra CLI.
- Check that the target project has the same dbt models and explores that the dashboard's charts reference. If they don't match, the upload fails validation.
Step 1: Download from the source project
Log in to the source instance, select the source project, then download the dashboard. Charts, virtual views, and data apps referenced by the dashboard are pulled automatically.
# Log in to the source instance
qyra login https://acme.qyraflow.com
# Select the source project interactively
qyra config set-project
# Download the dashboard
qyra download -d my-dashboard-slugOr specify the project UUID directly instead of selecting interactively:
qyra download -d my-dashboard-slug --project 11111111-1111-1111-1111-111111111111If the dashboard uses pivoted charts, add --strip-pivot-series so the chart YAML doesn't hardcode pivot values from the source project:
qyra download -d my-dashboard-slug --strip-pivot-seriesSee Make downloaded charts portable across projects for details.
Step 2: Upload to the target project
If the target project is on a different instance, log in to it first, then select the project and upload:
# Log in to the target instance
qyra login https://app.qyraflow.com
# Select the target project interactively
qyra config set-project
# Upload the dashboard with all dependencies
qyra upload --force -d my-dashboard-slug --include-charts --include-virtual-views --validateOr specify the project UUID directly:
qyra upload --force -d my-dashboard-slug --include-charts --include-virtual-views --validate --project 22222222-2222-2222-2222-222222222222If the target project is on the same instance, skip the login step — select the target project and upload:
# Select the target project
qyra config set-project
# Upload the dashboard with all dependencies
qyra upload --force -d my-dashboard-slug --include-charts --include-virtual-views --validate--force is required to create content that doesn't already exist in the target project, and --validate checks for errors after the upload finishes. For which dependencies travel automatically and which need a flag, see What download and upload include.