When upgrading your Dagster version, you may also need to migrate your Dagster instance. Migrations will only be required if you are upgrading your minor version.
Here, we walk you through the migration process in a Kubernetes environment.
For simplicity, we assume that you have only installed one release of the Dagster Helm chart in your Kubernetes cluster. All commands should be run in the proper namespace.
helm upgrade
with your desired Dagster chart version and Helm values.# Get the names of Dagster's Dagit and Daemon Deployments created by Helm
export DAGIT_DEPLOYMENT_NAME=`kubectl get deploy \
--selector=component=dagit -o jsonpath="{.items[0].metadata.name}"`
export DAEMON_DEPLOYMENT_NAME=`kubectl get deploy \
--selector=component=dagster-daemon -o jsonpath="{.items[0].metadata.name}"`
# Save each deployment's replica count to scale back up after migrating
export DAGIT_DEPLOYMENT_REPLICA_COUNT=`kubectl get deploy \
--selector=component=dagit -o jsonpath="{.items[0].status.replicas}"`
export DAEMON_DEPLOYMENT_REPLICA_COUNT=`kubectl get deploy \
--selector=component=dagster-daemon -o jsonpath="{.items[0].status.replicas}"`
# Scale down the Deployments
kubectl scale deploy $DAGIT_DEPLOYMENT_NAME --replicas=0
kubectl scale deploy $DAEMON_DEPLOYMENT_NAME --replicas=0
dagster instance migrate
command. You can check if the migration succeeded by inspecting the the resulting Pod of the Job.# Run `helm list` and save your Dagster Helm release name
export HELM_DAGSTER_RELEASE_NAME=<DAGSTER_RELEASE_NAME>
helm template $HELM_DAGSTER_RELEASE_NAME dagster/dagster \
--set "migrate.enabled=true" \
--show-only templates/job-instance-migrate.yaml \
--values values.yaml \
| kubectl apply -f -
kubectl scale deploy $DAGIT_DEPLOYMENT_NAME --replicas=$DAGIT_DEPLOYMENT_REPLICA_COUNT
kubectl scale deploy $DAEMON_DEPLOYMENT_NAME --replicas=$DAEMON_DEPLOYMENT_REPLICA_COUNT