Updating
The Updating process depends on your chosen method of installation
While intermediate updates can be skipped when updating please make sure to read the release notes in case some special action is required to update.
Docker
For all setups using Docker the updating process look something like this
- Before updating it is recommended to create a backup!
- Stop the container using
docker compose down
- Pull the latest image using
docker compose pull
- Start the container again using
docker compose up -d
Manual
For all setups using a manual installation updates usually involve downloading the latest source code from GitHub. After that make sure to run:
pip install -r requirements.txt
manage.py collectstatic
manage.py migrate
cd ./vue
yarn install
yarn build
To install latest libraries, apply all new migrations and collect new static files.
PostgreSQL
Postgres does not automatically upgrade database files when you change versions and requires manual intervention. One option is to manually backup/restore the database.
A full list of options to upgrade a database provide in the official PostgreSQL documentation.
- Collect information about your environment.
grep -E 'POSTGRES|DATABASE' ~/.docker/compose/.env
docker ps -a --format 'table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}' | awk 'NR == 1 || /postgres/ || /recipes/'
- Export the tandoor database
docker exec -t {{database_container}} pg_dumpall -U {{djangouser}} > ~/tandoor.sql
-
Stop the tandoor application
docker compose down
-
Rename the tandoor volume
mv ./postgresql ./postgresql.old
- Update image tag on postgres container in the docker-compose.yaml
db_recipes:
restart: always
image: postgres:16-alpine
volumes:
- ./postgresql:/var/lib/postgresql/data
env_file:
- ./.env
- Pull and rebuild database container
docker compose pull && docker compose up -d db_recipes
- Import the database export
cat ~/tandoor.sql | docker exec -i {{database_container}} psql postgres -U {{djangouser}}
- Install postgres extensions
then
docker exec -it {{database_container}} psql postgres -U {{djangouser}}
CREATE EXTENSION IF NOT EXISTS unaccent; CREATE EXTENSION IF NOT EXISTS pg_trgm;
If anything fails, go back to the old postgres version and data directory and try again.
There are many articles and tools online that might provide a good starting point to help you upgrade 1, 2, 3.