xxxxxxxxxx
#To dump a database called mydb into a SQL-script file:
pg_dump mydb > db.sql
#To reload such a script into a (freshly created) database named newdb:
psql -d newdb -f db.sql
xxxxxxxxxx
----------- DOCKER ----------
## Dump
docker exec -i pg_container_name /bin/bash -c "PGPASSWORD=pg_password psql --username pg_username database_name" > /desired/path/on/your/machine/dump.sql
## Restore
docker exec -i pg_container_name /bin/bash -c "PGPASSWORD=pg_password psql --username pg_username database_name" < /path/on/your/machine/dump.sql
xxxxxxxxxx
----------- DOCKER ----------
# Dump (ROLES/USERS/GROUP)
docker exec -i pg_container_name /bin/bash -c "PGPASSWORD=test pg_dumpall --host hostaddress --username test --globals-only" > /tmp/globals-dump.sql
# Dump (DB/TABLES)
docker exec -i pg_container_name /bin/bash -c "PGPASSWORD=test pg_dump --host hostaddress --username test --dbname database_name" > /tmp/db-dump.sql
# Restore (ROLES/USERS/GROUP)
docker exec -i pg_container_name /bin/bash -c "PGPASSWORD=test psql --username test" < /tmp/globals-dump.sql
# Restore (DB/TABLES)
docker exec -i pg_container_name /bin/bash -c "PGPASSWORD=test psql --username test --dbname database_name" < /tmp/db-dump.sql
# or
mount these files into your postgres docker container and import them with entry command.
xxxxxxxxxx
pg_dump -U your_username -d your_database_name > /path/to/sample_dump.sql
xxxxxxxxxx
################################## pg dump start ###########################################
psql -U postgres -d YOUR_DATABASE
CREATE USER cloudsqlsuperuser WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE YOUR_DATABASE TO cloudsqlsuperuser;
GRANT cloudsqlsuperuser TO postgres;
CREATE ROLE cloudsqladmin WITH LOGIN PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE YOUR_DATABASE TO cloudsqladmin;
exit
############################# Everything should work now #############################
psql -U postgres -d YOUR_DATABASE -f dump.sql