他にもっと簡単な方法があるかもしれないけど、必要な度に調べるのが面倒なのでメモ。
接続中のDB名を取得
test_db=> SELECT current_database(); current_database ------------------ test_db
接続中のDBサイズの取得
test_db=> SELECT pg_size_pretty(pg_database_size(datname)) FROM pg_database WHERE datname=(SELECT current_database()); pg_size_pretty ---------------- 46 MB
VIEWの作成
test_db=> CREATE VIEW getDBsize AS SELECT pg_size_pretty(pg_database_size(datname)) FROM pg_database WHERE datname=(SELECT current_database());
VIEWの確認
test_db=> SELECT * FROM getdbsize; pg_size_pretty ---------------- 46 MB
接続中のDBだけでなく、全てのDBのサイズを取得する場合
test_db=>SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
参考
http://www.postgresql.jp/document/8.4/html/functions-info.html
http://www.postgresql.jp/document/8.4/html/functions-admin.html