immich truenas data migration to new folder structure, but keep library at the same place?
TrueNas: Fangtooth 25.04
Immich: App Version: v1.141.1 Version: v1.9.24
So im currently migrating my apps to an ssd App pool (2x 512Gib single stripe). And i want to migrate immich overe and change to the new folder structure. My problem is that i have different Users and the immich library applies the folder structure in a way so that each usere has its own user dataset where the library is put into. This way if i give SMB access they can only access there own immich library, for backups etc. Now i don't want to move all of the library to the ssd storage, because then i would have to rsyn the 100reds of Gib images on top, which i would like to avoid.
Now is there a way to define the libary dataset the old way (old: /mnt/tank/Media/User/) and the rest as the new folder structure. I would also like to avoid mount bind a folder to the new /immich/data/library folder.
the second problem i have is that inside my .ix-apps/immich there is a folder pgData (Dont know if it is a relic from truecharts) and i have no idea where to put that.
the second problem i have is that inside my .ix-apps/immich there is a folder pgData (Dont know if it is a relic from truecharts) and i have no idea where to put that.

6 Replies
:wave: Hey @MoltenOre,
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. :blue_square: 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. :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.Could you explain a bit more what you define "the old way" and not binding volumes?
Because Otherwirse, it should be fairly simple
As for your pgData, you'll have to share your current Immich config in TrueNAS, so I can tell what I think it correspond to
With old way i mean that you bind all the subfolders of /data individually to the container as seen in images (this is deprected). and the new way you only need to mount the /data dataset. The problem is that my library is in a diffren dataset then /data and i dont/cant move it to the ssd. with bind mount i mean that i dont want to manuly make a mount in the shell indipendent of the container. Binding a folder to a container is no problem.
Images are the current mounted folders



ok so for pgData vs postgres_data, I think the most recent one is pgData, but you would have to double check (like is there any dates on the file, or is there a big size difference betweeen the 2?)
As for binding mounts, yes it is also possible: see https://immich.app/docs/install/truenas/#additional-storage-advanced-users (Check Multiple Datasets for Immich Storage)
As for migrating, the steps are also explained here: https://immich.app/docs/install/truenas/#migration-from-old-storage-configuration
Let me know if you need more help about it, I can assist with more detailed steps/explanation if necessary
Hi, srr that i write back this late but i had no time bc of exames. Today i tried to reinstall the container but get this error:
[2025/09/24 11:53:51] (ERROR) app_lifecycle.compose_action():56 -
Failed 'up' action for 'immich' app: Network ix-immich_default
Creating\n Network ix-immich_default
Created\n Container ix-immich-permissions-1
Creating\n Container ix-immich-permissions-1
Created\n Container ix-immich-redis-1
Creating\n Container ix-immich-machine-learning-1
Creating\n Container ix-immich-pgvecto-1
Creating\n Container ix-immich-redis-1
Created\n Container ix-immich-machine-learning-1
Created\n Container ix-immich-pgvecto-1
Created\n Container ix-immich-server-1
Creating\n Container ix-immich-server-1
Created\n Container ix-immich-permissions-1
Starting\n Container ix-immich-permissions-1
Started\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-pgvecto-1
Starting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-redis-1
Starting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-machine-learning-1
Starting\n Container ix-immich-redis-1 Started\n Container ix-immich-machine-learning-1 Started\n Container ix-immich-pgvecto-1 Started\n Container ix-immich-pgvecto-1 Waiting\n Container ix-immich-redis-1 Waiting\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-pgvecto-1
Error\n Container ix-immich-redis-1
Healthy\ndependency failed to start: container ix-immich-pgvecto-1 is unhealthy\n All the mountet folders have the user and group apps as modifie Ok i fixed this Problem. Smt with permissions missing. But now the Server conteiner will not start anymore when i replace the PG Data with the old pg data
Creating\n Network ix-immich_default
Created\n Container ix-immich-permissions-1
Creating\n Container ix-immich-permissions-1
Created\n Container ix-immich-redis-1
Creating\n Container ix-immich-machine-learning-1
Creating\n Container ix-immich-pgvecto-1
Creating\n Container ix-immich-redis-1
Created\n Container ix-immich-machine-learning-1
Created\n Container ix-immich-pgvecto-1
Created\n Container ix-immich-server-1
Creating\n Container ix-immich-server-1
Created\n Container ix-immich-permissions-1
Starting\n Container ix-immich-permissions-1
Started\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-pgvecto-1
Starting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-redis-1
Starting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-machine-learning-1
Starting\n Container ix-immich-redis-1 Started\n Container ix-immich-machine-learning-1 Started\n Container ix-immich-pgvecto-1 Started\n Container ix-immich-pgvecto-1 Waiting\n Container ix-immich-redis-1 Waiting\n Container ix-immich-permissions-1
Waiting\n Container ix-immich-permissions-1
Exited\n Container ix-immich-pgvecto-1
Error\n Container ix-immich-redis-1
Healthy\ndependency failed to start: container ix-immich-pgvecto-1 is unhealthy\n All the mountet folders have the user and group apps as modifie Ok i fixed this Problem. Smt with permissions missing. But now the Server conteiner will not start anymore when i replace the PG Data with the old pg data
What do you mean when you replace with old pgdata?