I
Immich4mo ago
demise

database backup not working

i have setup database dump to happen every 6 hours, but it never works. in backup directory it creates a 0 sized sql file, which it never completes. verbose logs show job started only, no progress
18 Replies
Immich
Immich4mo ago
:wave: Hey @demise, Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker ps -a docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy - Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA Checklist I have... 1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time). 2. :ballot_box_with_check: read applicable release notes. 3. :ballot_box_with_check: reviewed the FAQs for known issues. 4. :ballot_box_with_check: reviewed Github for known issues. 5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy). 6. :blue_square: uploaded the relevant information (see below). 7. :ballot_box_with_check: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) Information In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider: - Your docker-compose.yml and .env files. - Logs from all the containers and their status (see above). - All the troubleshooting steps you've tried so far. - Any recent changes you've made to Immich or your system. - Details about your system (both software/OS and hardware). - Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h). - The version of the Immich server, mobile app, and other relevant pieces. - Any other information that you think might be relevant. Please paste files and logs with proper code formatting, and especially avoid blurry screenshots. Without the right information we can't work out what the problem is. Help us help you ;) If this ticket can be closed you can use the /close command, and re-open it later if needed.
Zeus
Zeus4mo ago
Please try a manual backup
demise
demiseOP4mo ago
manual backup works, but its a hassle to setup
Zeus
Zeus4mo ago
Please show us the output when running and the size of the output file Also post your compose and env
demise
demiseOP4mo ago
compose.yml
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v1.137.1
environment:
DB_URL: "postgresql://${IMMICH_DB_USERNAME}:${IMMICH_DB_PASSWORD}@database/immich"
REDIS_HOSTNAME: redis
volumes:
- /etc/localtime:/etc/localtime:ro
- ${USERDIR}/data/backup/immich:/usr/src/app/upload
ports:
- 2283:2283
depends_on:
- redis
- database
restart: unless-stopped
healthcheck:
disable: false

immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:v1.137.1
volumes:
- ${CONFIGDIR}/immich/model-cache:/cache
restart: unless-stopped
healthcheck:
disable: false

redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
healthcheck:
test: redis-cli ping || exit 1
restart: unless-stopped

database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
environment:
POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD}
POSTGRES_USER: ${IMMICH_DB_USERNAME}
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: '--data-checksums'
# DB_STORAGE_TYPE: 'HDD'
volumes:
- ${CONFIGDIR}/immich/db:/var/lib/postgresql/data
restart: unless-stopped
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v1.137.1
environment:
DB_URL: "postgresql://${IMMICH_DB_USERNAME}:${IMMICH_DB_PASSWORD}@database/immich"
REDIS_HOSTNAME: redis
volumes:
- /etc/localtime:/etc/localtime:ro
- ${USERDIR}/data/backup/immich:/usr/src/app/upload
ports:
- 2283:2283
depends_on:
- redis
- database
restart: unless-stopped
healthcheck:
disable: false

immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:v1.137.1
volumes:
- ${CONFIGDIR}/immich/model-cache:/cache
restart: unless-stopped
healthcheck:
disable: false

redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
healthcheck:
test: redis-cli ping || exit 1
restart: unless-stopped

database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
environment:
POSTGRES_PASSWORD: ${IMMICH_DB_PASSWORD}
POSTGRES_USER: ${IMMICH_DB_USERNAME}
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: '--data-checksums'
# DB_STORAGE_TYPE: 'HDD'
volumes:
- ${CONFIGDIR}/immich/db:/var/lib/postgresql/data
restart: unless-stopped
.env
CONFIG_DIR=/some-config-path
USERDIR=/some-data-path
IMMICH_DB_USERNAME=immich
IMMICH_DB_PASSWORD=***
CONFIG_DIR=/some-config-path
USERDIR=/some-data-path
IMMICH_DB_USERNAME=immich
IMMICH_DB_PASSWORD=***
currently directory seems to be empty. will update here once empty file is created
Zeus
Zeus4mo ago
I want to see the output of the manual dump you did Also what type of storage is CONFIG_DIR ? Please also post the Postgres container logs
Mraedis
Mraedis4mo ago
I see that config dir etc a lot these days, where is that coming from?
demise
demiseOP4mo ago
basically i have a vm that runs docker containers, so config_dir is a directory inside vm's storage. this data is backed up every other day, as it doesn't change that much. user_dir is a directory mapped into my NAS array, which gets backed up every 12 hours, mostly for data segregation, had this setup from last 7 years, never updated
demise
demiseOP4mo ago
this is what i run for manual dump, it saves directly into immich's backup folder (as it is already backed up to cloud): docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=immich | gzip > "$USERDIR/immich/backups/dump_$(date +%d-%m-%y).sql.gz" it doesn't output anything to console, but generates a file in backups folder like this:
No description
Mraedis
Mraedis4mo ago
Stupid question but: is the backup toggle in admin settings on?
demise
demiseOP4mo ago
hmm, this could be a point, CONFIG_DIR stays in VM, so it's on an SSD of ext4. USERDIR is on NAS, running ZFS, mounted with samba. User has permissions, as immich is able to upload files, and generate metadata
demise
demiseOP4mo ago
yes
No description
demise
demiseOP4mo ago
@Zeus you need postgres logs while running manual backup or dump job from ui?
Zeus
Zeus4mo ago
Both I guess
demise
demiseOP4mo ago
it doesn't have anything, do i need to enable some logging?
Using SSD storage

PostgreSQL Database directory appears to contain a database; Skipping initialization

2025-08-01 08:19:48.617 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-08-01 08:19:48.617 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-08-01 08:19:48.635 UTC [1] LOG: starting PostgreSQL 14.18 (Debian 14.18-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-08-01 08:19:48.636 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2025-08-01 08:19:48.636 UTC [1] LOG: listening on IPv6 address "::", port 5432
2025-08-01 08:19:48.640 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-08-01 08:19:48.646 UTC [32] LOG: database system was shut down at 2025-08-01 08:19:47 UTC
2025-08-01 08:19:48.656 UTC [1] LOG: database system is ready to accept connections
Using SSD storage

PostgreSQL Database directory appears to contain a database; Skipping initialization

2025-08-01 08:19:48.617 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-08-01 08:19:48.617 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-08-01 08:19:48.635 UTC [1] LOG: starting PostgreSQL 14.18 (Debian 14.18-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-08-01 08:19:48.636 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2025-08-01 08:19:48.636 UTC [1] LOG: listening on IPv6 address "::", port 5432
2025-08-01 08:19:48.640 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-08-01 08:19:48.646 UTC [32] LOG: database system was shut down at 2025-08-01 08:19:47 UTC
2025-08-01 08:19:48.656 UTC [1] LOG: database system is ready to accept connections
btw, i had seen an older post with similar issue, but no reply from OP/team there, so created this new one: https://discord.com/channels/979116623879368755/1373338656080658442
Zeus
Zeus4mo ago
I’m guessing it could be due to mount point issues or something like that I’m not sure if the dump is done by the same user as the images writing
demise
demiseOP4mo ago
any idea to confirm this?

Did you find this page helpful?