Skip to content

Instantly share code, notes, and snippets.

@ThomasG77
Created March 26, 2023 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ThomasG77/c0ee68493a17af49044405daf3e6d79b to your computer and use it in GitHub Desktop.
Save ThomasG77/c0ee68493a17af49044405daf3e6d79b to your computer and use it in GitHub Desktop.
List schema and tables from all databases in PostgreSQL cluster
psql -t --csv -d postgres -c "WITH get_database_names AS (
SELECT d.datname as dbname
FROM pg_catalog.pg_database d
WHERE d.datname <> 'template0'
ORDER BY 1
)
SELECT * FROM get_database_names;" >| databases.txt
echo "schemaname,tablename,dbname" >| all_tables.txt
for i in $(cat databases.txt);
do psql -t --csv -d "${i}" -c "SELECT schemaname,tablename, '"${i}"' AS dbname
FROM pg_catalog.pg_tables
WHERE schemaname NOT IN ('pg_catalog','information_schema');" >> all_tables.txt;
done;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment