The Updating process depends on your chosen method of [installation](/install/docker) 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 0. Before updating it is recommended to **create a [backup](/system/backup)!** 1. Stop the container using `docker-compose down` 2. Pull the latest image using `docker-compose pull` 3. 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: 1. `pip install -r requirements.txt` 2. `manage.py collectstatic` 3. `manage.py migrate` 4. `cd ./vue` 5. `yarn install` 6. `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](https://docs.tandoor.dev/system/updating/#postgresql) the database. A full list of options to upgrade a database provide in the [official PostgreSQL documentation](https://www.postgresql.org/docs/current/upgrading.html). 1. Collect information about your environment. ``` bash grep -E 'POSTGRES|DATABASE' ~/.docker/compose/.env docker ps -a --format 'table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}' | awk 'NR == 1 || /postgres/ || /recipes/' ``` 2. Export the tandoor database ``` bash docker exec -t {{database_container}} pg_dumpall -U {{djangouser}} > ~/tandoor.sql ``` 3. Stop the postgres container ``` bash docker stop {{database_container}} {{tandoor_container}} ``` 4. Rename the tandoor volume ``` bash sudo mv ~/.docker/compose/postgres ~/.docker/compose/postgres.old ``` 5. Update image tag on postgres container. ``` yaml db_recipes: restart: always image: postgres:16-alpine volumes: - ./postgresql:/var/lib/postgresql/data env_file: - ./.env ``` 6. Pull and rebuild container. ``` bash docker-compose pull && docker-compose up -d ``` 7. Import the database export ``` bash cat ~/tandoor.sql | sudo docker exec -i {{database_container}} psql postgres -U {{djangouser}} ``` 8. Install postgres extensions ``` bash docker exec -it {{database_container}} psql postgres -U {{djangouser}} ``` then ``` psql 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](https://thomasbandt.com/postgres-docker-major-version-upgrade), [2](https://github.com/tianon/docker-postgres-upgrade), [3](https://github.com/vabene1111/DockerPostgresBackups).