mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 10:51:36 -04:00
If cluster files lose postgres ownership (stray recursive chown, interrupted install), the postmaster stays up but every new backend dies with FATAL: could not open file "global/pg_filenode.map": Permission denied — and dropdb/psql cannot work either. Restore ownership of /var/lib/postgresql and /etc/postgresql and restart postgres before recreating the database, and start the API when done. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
34 lines
1 KiB
Bash
Executable file
34 lines
1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
source /opt/wrolpi/wrolpi/scripts/lib.sh
|
|
|
|
# Re-execute this script if it wasn't called with sudo.
|
|
if [ $EUID != 0 ]; then
|
|
sudo "$0" "$@"
|
|
exit $?
|
|
fi
|
|
|
|
if psql -l 2>/dev/null | grep wrolpi >/dev/null; then
|
|
yes_or_no "Are you sure you want to reset the API database? All data will be lost." || exit 0
|
|
fi
|
|
|
|
set -x
|
|
|
|
systemctl stop wrolpi-api
|
|
|
|
# Heal Postgres cluster ownership before touching the database. A stray recursive chown or an
|
|
# interrupted install can leave cluster files unreadable by the server; new backends then die
|
|
# with: FATAL: could not open file "global/pg_filenode.map": Permission denied
|
|
if id postgres >/dev/null 2>&1; then
|
|
[ -d /var/lib/postgresql ] && chown -R postgres:postgres /var/lib/postgresql
|
|
[ -d /etc/postgresql ] && chown -R postgres:postgres /etc/postgresql
|
|
systemctl restart postgresql
|
|
fi
|
|
|
|
# Delete the WROLPi API DB, if it exists.
|
|
sudo -iu postgres dropdb wrolpi
|
|
sudo -iu postgres dropuser wrolpi
|
|
|
|
/bin/bash /opt/wrolpi/scripts/initialize_api_db.sh
|
|
|
|
systemctl start wrolpi-api
|