Enter psql shell: [<docker>] psql -U <user> -W -d <database>
Connection info: # \c [<db>] [<user>]
List all databases: # \l
List all tables: # \d
List all users: # \du
Backing up postgres (use pg_dumpall
for… all)
pg_dump -U <user> <database> | xz -4 > /tmp/postgres_dump_$(date +"%Y-%m-%d_%H_%M").sql.xz
Restoring from dump
xz -d < /tmp/postgres_dump_<date>.sql.xz | <docker exec> psql -U <user> -d <database>
docker cp
it inside container and restore from within.To run above commands inside docker container (denoted by <docker exec>
)
docker exec -it [-u <user>] <postgres-container-name> <command>
Assuming a postgres instance is already running and a new app is being setup that requires a database in it.
# CREATE DATABASE <database>;
# CREATE USER <user> WITH ENCRYPTED PASSWORD '<pass>';
# ALTER DATABASE <database> OWNER TO <user>;
# GRANT ALL PRIVILEGES ON DATABASE <database> TO <user>;
Use this connection string for access:
postgres://<user>:<pass>@<host>:<port>/<database>