#!/usr/bin/python import MySQLdb as mysqldb import sys if len(sys.argv)<3 or len(sys.argv)>4: sys.stderr.write("Usage: pretty-schema.py [passwd]\n") sys.exit(1) DB=sys.argv[1] connargs={"user":sys.argv[2], "use_unicode":True} if len(sys.argv)==4: connargs["passwd"]=sys.argv[3] db=mysqldb.connect(**connargs) c=db.cursor() c.execute("""SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=%s ORDER BY table_name """,(DB,)) tables=[r[0] for r in c.fetchall()] print DB print "="*len(DB) print for t in tables: print "== %s ==\n"%(t,) print '[frame="all",grid="all"]' print '`40`20`5`5`5~~~~' print 'Name,Type,NULL,Default,Key\n~~~~' #print "Field","Type","Null","Key","Default","Extra" c.execute("""SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT,COLUMN_KEY FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = %s AND table_schema = %s ORDER BY ORDINAL_POSITION """,(t,DB)) for r in c.fetchall(): print ",".join(str(x) for x in r) print "~"*4+"\n"