Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. import psycopg2
  2.  
  3. from settings import DB_CONNECTION
  4.  
  5. # Functions for reading scripts
  6. class ScriptReader(object):
  7.  
  8. @staticmethod
  9. def get_script(path, *args):
  10. script_file = open(path, 'rb')
  11. text = script_file.read().format(*args)
  12. script_file.close()
  13. return text
  14.  
  15. # Utils for messages
  16. class Messages(object):
  17.  
  18. @staticmethod
  19. def print_message(msg):
  20. print '---> {}'.format(msg)
  21.  
  22. # Redshift functions to send and retrieve data
  23. class RedshiftDataManager(object):
  24.  
  25. @staticmethod
  26. def execute_update(con, cur, script):
  27. try:
  28. cur.execute(script)
  29. con.commit()
  30. result = True
  31. except:
  32. con.rollback()
  33. result = False
  34. finally:
  35. con.close()
  36. return result
  37.  
  38. @staticmethod
  39. def execute_query(con, cur, script):
  40. try:
  41. cur.execute(script)
  42. con.commit()
  43. result = cur.fetchall()
  44. except:
  45. con.rollback()
  46. result = None
  47. finally:
  48. con.close()
  49. return result
  50.  
  51. @staticmethod
  52. def get_conn_string(db_conn):
  53. return "dbname='{}' port='5439' user='{}' password='{}' host='{}'".format(
  54. db_conn['db_name'], db_conn['db_username'], db_conn['db_password'], db_conn['db_host'])
  55.  
  56. @staticmethod
  57. def create_conn(conn_string):
  58. return psycopg2.connect(conn_string)
  59.  
  60. @staticmethod
  61. def get_conn():
  62. return RedshiftDataManager.create_conn(
  63. RedshiftDataManager.get_conn_string(DB_CONNECTION))
  64.  
  65. @staticmethod
  66. def run_update(script):
  67. return RedshiftDataManager.execute_update(
  68. RedshiftDataManager.get_conn(),
  69. RedshiftDataManager.get_conn().cursor(),
  70. script)
  71.  
  72. @staticmethod
  73. def run_query(script):
  74. return RedshiftDataManager.execute_query(
  75. RedshiftDataManager.get_conn(),
  76. RedshiftDataManager.get_conn().cursor(),
  77. script)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement