Backup & upgrade
Back up the database and upgrade to a new version safely.
Since all data lives in PostgreSQL, backup is a standard database dump. Upgrading is a matter of swapping the image and running migrations.
Backup
# daily dump
docker compose exec db pg_dump -U myway myway > myway-$(date +%F).sql
# restore
cat myway-2026-07-12.sql | docker compose exec -T db psql -U myway mywayUpgrade
You upgrade with the same script you installed with. It keeps your existing settings (address, ports, license key, email configuration), loads the new images, applies database migrations and refreshes the scheduled jobs.
- 1Take a database backup first. Do not skip this step.
- 2Read the release notes; items marked "Heads-up" are behaviour changes and may affect your team.
- 3Download the new package and extract it into the installation directory on your server.
- 4Run ./scripts/install.sh. It does not ask the questions again, it uses your stored settings.
- 5Migrations apply automatically on start; at the end the script runs a scheduled job once and reports the result.
# yedek al, sonra yükselt / back up, then upgrade
docker compose exec db pg_dump -U myway myway > myway-$(date +%F).sql
cd /opt/myway
./scripts/install.shDo NOT run docker compose pull && up -d on its own. The app updates but the scheduled jobs are not installed: due-date notifications, review reminders and event cleanup silently stop running with no visible error. The installer is the only path that also does that job.
Migrations are forward-only and idempotent; still, in production always back up first, then upgrade. Skipping versions is fine: the migrations in between are applied in order, you do not have to step through every release.