Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf8 -*-
  3.  
  4. # sudo pip3 install mysqlclient xmltodict
  5.  
  6. import os
  7. import MySQLdb
  8. import xmltodict
  9. import argparse
  10.  
  11. parser = argparse.ArgumentParser(description='Python Magento DB', add_help=False)
  12.  
  13. parser.add_argument("-h", "--host", help="DB host")
  14. parser.add_argument("-u", "--user", help="DB user")
  15. parser.add_argument("-p", "--password", help="DB password")
  16. parser.add_argument("-n", "--name", help="DB name")
  17.  
  18. args = parser.parse_args()
  19.  
  20. SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
  21. CONFIG_FILE = "{}/../app/etc/local.xml".format(SCRIPT_DIR)
  22.  
  23. local_xml = content = open(CONFIG_FILE, 'r').read()
  24.  
  25. xml = xmltodict.parse(local_xml)
  26.  
  27. prefix = xml['config']['global']['resources']['db']['table_prefix']
  28. db_host = xml['config']['global']['resources']['default_setup']['connection']['host']
  29. db_user = xml['config']['global']['resources']['default_setup']['connection']['username']
  30. db_password = xml['config']['global']['resources']['default_setup']['connection']['password']
  31. db_name = xml['config']['global']['resources']['default_setup']['connection']['dbname']
  32.  
  33. db = MySQLdb.connect(
  34. host=args.host if args.host else db_host,
  35. user=db_user,
  36. passwd=db_password,
  37. db=db_name,
  38. charset="utf8",
  39. use_unicode=True
  40. )
  41.  
  42. cur = db.cursor()
  43.  
  44. help = """
  45. # Example of request
  46. cur.execute("SELECT * FROM core_config_data")
  47. for row in cur.fetchall():
  48. print(row[0])
  49. prettify(cur.fetchall())
  50. db.close()
  51. """
  52.  
  53. print(help)
  54.  
  55. # Function to prettify fetchall output
  56. def prettify(results, vertical=False):
  57. if not vertical:
  58. widths = []
  59. columns = []
  60. tavnit = '|'
  61. separator = '+'
  62.  
  63. for cd in cur.description:
  64. widths.append(max(cd[2], len(cd[0])))
  65. columns.append(cd[0])
  66.  
  67. for w in widths:
  68. tavnit += " %-"+"%ss |" % (w,)
  69. separator += '-'*w + '--+'
  70.  
  71. print(separator)
  72. print(tavnit % tuple(columns))
  73. print(separator)
  74. for row in results:
  75. print(tavnit % row)
  76. print(separator)
  77.  
  78. else:
  79. print(results)
  80.  
  81. column_length = 0
  82. for cd in cur.description:
  83. if len(cd[0]) >= column_length:
  84. column_length = len(cd[0])
  85.  
  86. for index, row in enumerate(results):
  87. print("{} {}. row {}".format("*"*27, index+1, "*"*27))
  88. for cd, value in zip(cur.description, row):
  89. tavnit = "{:>%s}: " % (column_length,)
  90. print(tavnit.format(cd[0]) + value)
  91.  
  92. print("{} rows in set".format(len(results)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement