I'm following this tutorial that explains how to move a PostgreSQL data folder location. Basically, I just need to copy the files inside
/var/lib/postgresql to a different location... Something like:
sudo rsync -av /var/lib/postgresql /mnt/volume
And then inside the file
/etc/postgresql/9.5/main/postgresql.conf I change the line
data_directory = '/mnt/volume/postgresql/12/main'...
This solution works perfectly fine, the only condition is that the copied folder needs to have
postgres:postgres permissions recursively.
The problem starts when I use VirtualBox with a shared folder location between the host and the guest, let's say my shared folder location is in
/home/SharedFolder and I have PostgreSQL installed in my virtual machine. These VirtualBox shared folders always appear inside the guest with
root:vboxsf permissions, those permissions won't change with
chown and that makes it impossible for me to create a new folder on this shared folder with
postgres:postgres permissions. I've tried adding
postgres to the groups
root (I know, that's not recommended), but it doesn't work as well. It just works when all the folders inside
postgres:postgres permissions. Is there any workaround to that problem? How can I change the data folder location of PostgreSQL when I can't control the permissions of its destination folder (in this case, the VirtualBox shared folder location)?