Snap PostgreSQL Reference - Storage

Snap PostgreSQL Reference - Storage

The snap PostgreSQL uses standard SNAP_COMMON location to store all DB related data. It allows users to use all snap related features: refresh/saves/restore.

If users want to redefine data storage location it is possible using bind-mount on the host machine:

# Create a storage to keep you data/logs:
sudo mkdir -p /srv/mypgdata/data /srv/mypgdata/logs

# Stop PostgreSQL DB to move data:
sudo snap stop postgresql.postgresql

# Move current data/logs:
sudo cp -a /var/snap/postgresql/common/var/lib/postgresql/* /srv/mypgdata/data
sudo cp -a /var/snap/postgresql/common/var/logs/postgresql/* /srv/mypgdata/logs

# Mount data/logs storage inside SNAP:
sudo mount --bind /srv/mysnapdata/data /var/snap/postgresql/common/var/lib/postgresql
sudo mount --bind /srv/mysnapdata/logs /var/snap/postgresql/common/var/log/postgresql

# Start PostgreSQL DB
sudo snap start postgresql.postgresql

Note: symbolic links are not allowed. Use mount --bind. Important: always unmount your manually mounted storages before removing the snap.