---
title: "Manage resources | Grafana documentation"
description: "Use gcx to manage resources."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Manage resources with `gcx`

## Migrate resources between environments

Grafana resources can be migrated from one environment to another, for example from a development to production environment.

You need to [configure one context per environment](../../configuration#define-contexts). In this example scenario, use `dev` for the development environment and `prod` for production.

1. Make changes to dashboards and other resources using the Grafana UI in your **development instance**.
2. Pull those resources from the development environment to your local machine:
   
   shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy
   
   ```shell
   gcx resources pull --context dev # Add `-o yaml` export resources as YAML 
   ```
3. Push the resources to production:
   
   shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy
   
   ```shell
   gcx resources push --context prod
   ```

> Note
> 
> Resources are pulled and pushed from the `./resources` directory by default. Configure this path with the `--path`/`-p` flags.

Resources are pulled and pushed from the `./resources` directory by default. Configure this path with the `--path`/`-p` flags.

## Back up and restore resources

Follow this workflow to back up all Grafana resources from one instance and later restore them. This can be useful to replicate a configuration or perform disaster recovery.

1. Ensure the current context points to the Grafana instance to backup/restore:
   
   shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy
   
   ```shell
   gcx config use-context YOUR_CONTEXT  # for example "prod"
   ```
2. Pull all resources from your target environment:
   
   shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy
   
   ```shell
   gcx resources pull --path ./backup-prod # Add `-o yaml` to export resources as YAML
   ```
3. Save the exported resources to version control or cloud storage.
4. Push the resources to restore them:
   
   shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy
   
   ```shell
   gcx resources push --path ./backup-prod
   ```
