I
Immich•4mo ago
NinjaEd

Attempting to restore immich from a database backup

Hi devs, I recently was migrating which volume my docker apps resided on, on my nas, and somehow in the process of the mgiration seemed to break soemthing with the immich app. It looked to be running healthily, but I couldn't get to the main page. I thought I would redeploy the docker container, but upon starting up the app realised that the library did not port over like other docker apps when the volume doesn't change. I attempted to follow the instructions here https://immich.app/docs/administration/backup-and-restore/#manual-backup-and-restore and got as far as the gunzip line (With some minor modifications to the prompts). I'll be the first to admit that I'm not the most tech savy.
When I try to paste the commands as is (with the exception of modifying the file path of the sql.gz file), I get a variety of errors "-bash: syntax error near unexpected token (' -bash: syntax error near unexpected token |'" I imagine this probably has to do with how I'm pasting the commands in. Should these lines be pasted all together "gunzip < "/volume3/docker/immich-app/library/backups/dump.sql.gz" \ | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \ | docker exec -i immich_postgres psql --username=postgres" I'm accessing a nas through the terminal app on a mac computer (if that's relevant) Thanks
16 Replies
Immich
Immich•4mo ago
:wave: Hey @NinjaEd, 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
Immich
Immich•4mo ago
Checklist I have... 1. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time). 2. :blue_square: read applicable release notes. 3. :blue_square: reviewed the FAQs for known issues. 4. :blue_square: reviewed Github for known issues. 5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy). 6. :blue_square: uploaded the relevant information (see below). 7. :blue_square: 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.
GitHub
immich-app immich · Discussions
Explore the GitHub Discussions forum for immich-app immich. Discuss code, ask questions & collaborate with the developer community.
GitHub
Issues · immich-app/immich
High performance self-hosted photo and video management solution. - Issues · immich-app/immich
bo0tzz
bo0tzz•4mo ago
Yes that should all be pasted together Maybe share a screenshot of exactly how you're pasting it?
Mraedis
Mraedis•4mo ago
You can put it all on one line too: gunzip < "/volume3/docker/immich-app/library/backups/dump.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" | docker exec -i immich_postgres psql --username=postgres
NinjaEd
NinjaEdOP•4mo ago
Does this help?
No description
NinjaEd
NinjaEdOP•4mo ago
Thanks Mraedis, I've solved one problem but seem to have created a different one now Text below for reference "kelvin@KelsNAS:/volume3/docker/immich-app$ sudo gunzip < "/volume3/docker/immich-app/library/backups/immich-db-backup-1733043600051.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" | docker exec -i immich_postgres psql --username=postgres permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/immich_postgres/json": dial unix /var/run/docker.sock: connect: permission denied" If I split it up and don't include the final docker exec line "gunzip < "/volume3/docker/immich-app/library/backups/immich-db-backup-1733043600051.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" It seems to go through a giant process and re-creates the postgres database
No description
NinjaEd
NinjaEdOP•4mo ago
It seems to hang on this final step
No description
NinjaEd
NinjaEdOP•4mo ago
Not sure if this would be helpful, but this is the log that I see in the docker container
No description
Zeus
Zeus•4mo ago
Please include the env and compose files
Mraedis
Mraedis•4mo ago
If you get permission denied like this you're likely running your containers as root and need sudo or just sudo su -
Zeus
Zeus•4mo ago
Oh yeah this
NinjaEd
NinjaEdOP•4mo ago
Using sudo seemed to allow me to run this, but then it just kind of seemed to hang (I think), and didnt bring me back to the prompt where I expect to be able to run/input my next comand
Mraedis
Mraedis•4mo ago
where did you put the sudo 🙃 gunzip < "/volume3/docker/immich-app/library/backups/dump.sql.gz" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" | sudo docker exec -i immich_postgres psql --username=postgres I think this is the only place that needed it
NinjaEd
NinjaEdOP•4mo ago
Third line up from where the cursor bar is...... just below the line where it says denied I separated out the docker exec part Let me try running it again all as one input
Mraedis
Mraedis•4mo ago
the | are pipes if you are putting them on seperate lines then nothing will happen pipes are "take the output of this one command and use it as input for the other"
NinjaEd
NinjaEdOP•4mo ago
ahhhh let me try and not dig my own hole here @Mraedis Thank you SO much for all of your help. It was greatly appreciated that you took the time to help, and also explain a bit about the syntax of the commands and why stuff is the way it is. We're back in. I think what might have happened is that when I migrated the docker volumes over, the env file didn't copy over which is why it could never connect to the database.

Did you find this page helpful?