Advertisement
Guest User

Untitled

a guest
Mar 4th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. import urlparse
  2. import argparse
  3. import psycopg2
  4.  
  5.  
  6. class Bunch:
  7. def __init__(self, **kwds):
  8. self.__dict__.update(kwds)
  9.  
  10.  
  11. def psycopg_args(db_url):
  12. db = urlparse.urlparse(db_url)
  13. if db.scheme not in ['postgres', 'psql', 'pgsql']:
  14. raise RuntimeError(('Couldn\'t parse postgres connection {!r},'
  15. ' unexpected scheme {!r}'), db_url, db.scheme)
  16. return Bunch(database=db.path[1:],
  17. user=db.username,
  18. password=db.password,
  19. host=db.hostname,
  20. port=db.port)
  21.  
  22.  
  23. if __name__ == '__main__':
  24. parser = argparse.ArgumentParser()
  25. parser.add_argument('dburl')
  26. parser.add_argument('--limit', type=int, default=100)
  27. args = parser.parse_args()
  28. db = psycopg_args(args.dburl)
  29. limit = args.limit * 1024 * 1024
  30. conn = psycopg2.connect(**db.__dict__)
  31. cur = conn.cursor()
  32. query = ('select pg_size_pretty(pg_relation_size(C.oid)) AS pretty_size, relname '
  33. 'from pg_class C where pg_relation_size(C.oid) > {} '
  34. 'order by pg_relation_size(C.oid) desc').format(limit)
  35. cur.execute(query)
  36. for row in cur.fetchall():
  37. print row
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement