Merge pull request 'update commands for postgres' (#13) from fix/postgres into main
All checks were successful
Build, Test & Publish / Build (push) Successful in 27s
Build, Test & Publish / Build and Publish Container Image (push) Successful in 29s
Build, Test & Publish / Deploy to Infrastructure (push) Successful in 1m8s

Reviewed-on: #13
This commit is contained in:
2025-10-20 12:23:57 +11:00

View File

@@ -8,14 +8,32 @@ Most of these commands are run using Docker as then we don't need to have Postgr
If a different version of Postgres is needed, just change the version number in the Docker image tag. If a different version of Postgres is needed, just change the version number in the Docker image tag.
::: :::
## Setup
Create a pgpass file in the current directory with the following content:
```
<server>:<port>:<database>:<username>:<password>
```
::: tip
Use `*` as a wildcard for any of the fields except for the password.
:::
## Dumping a Database ## Dumping a Database
```bash ```bash
docker run --network host --rm -v .:/tmp -e PGPASSWORD=mysecretpassword postgres:16 pg_dump -h localhost -U myuser -d mydb -f /tmp/dump.sql docker run --network host --rm -v .:/tmp -v ./pgpass:/root/.pgpass -e PGPASSFILE=/root/.pgpass postgres:16 bash -c "chmod 600 /root/.pgpass && pg_dump -h <server> -p <port> -U <username> <database> -f /tmp/$(date +%Y%m%d_%H%M%S)_<database>_dump.sql -c --if-exists"
``` ```
## Restoring a Database ## Dumping a Cluster
```bash ```bash
docker run --network host --rm -v .:/tmp -e PGPASSWORD=mysecretpassword postgres:16 psql -h localhost -U myuser -d mydb -f /tmp/dump.sql docker run --network host --rm -v .:/tmp -v ./pgpass:/root/.pgpass -e PGPASSFILE=/root/.pgpass postgres:16 bash -c "chmod 600 /root/.pgpass && pg_dumpall -h <server> -p <port> -U <username> -f /tmp/$(date +%Y%m%d_%H%M%S)_<server>_cluster_dump.sql -c --if-exists"
```
## Restoring from a SQL Dump
```bash
docker run --network host --rm -v .:/tmp -v ./pgpass:/root/.pgpass -e PGPASSFILE=/root/.pgpass postgres:16 bash -c "chmod 600 /root/.pgpass && psql -h <server> -p <port> -U <username> <database> -f /tmp/dump.sql -X"
``` ```