Skip to main content
Update Workspaces by replacing the container image while keeping the same data volume. Back up first. If you must roll back, restore that backup into a fresh volume and start the old image. Do not run old code against migrated data. Version 0.2.0 includes migrations 0027 through 0033. Once that release updates a data volume, an older image whose migration set ends before 0033 will refuse to start on it.

Before you update

  1. Read the release notes and migration impact for the new version.
  2. Record the current image version and source commit from /healthz.
  3. Create and verify a cold backup.
  4. Keep the old image tag and the protected environment file available.
You can skip release versions. Workspaces applies each pending migration in filename order during boot.

Update the container

1

Pull the new image

2

Stop and remove the old container

3

Start the new image on the same volume

4

Verify the result

Confirm the new version and source commit. Sign in, open a known document and its version history, then make a new edit.
A migration failure stops the process before it serves requests. Read the log for the migration filename, keep the failed volume unchanged, and restore the pre-update backup if you cannot correct the cause.

Roll back

Rolling back restores data from before the update. The restored volume will not contain writes made after that backup.
1

Stop the new container

2

Restore into a fresh volume

Follow Restore a cold backup. Do not unpack the archive over the migrated volume.
3

Start the old image

Mount the $RESTORE_VOLUME created by the restore steps and use the exact release tag tied to the backup. This example rolls back to 0.2.0. Keep the command in the same shell.
4

Verify the rollback

Check /healthz, sign in, open known documents and versions, and make a new edit. Keep the migrated volume until you have confirmed the restore.
An old image does not start when the volume contains migrations it does not recognize. This prevents old code from using a newer schema. Reviewed July 22, 2026. Maintained by the Plannotator documentation team.
Last modified on July 24, 2026