Advertisement
Guest User

Untitled

a guest
Oct 12th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. import psycopg2
  2. import sys
  3.  
  4.  
  5. con = None
  6.  
  7. try:
  8.  
  9. con = psycopg2.connect(database='local', user='local', password='local',port='1970')
  10. cur = con.cursor()
  11. cur.execute('SELECT x FROM t')
  12. f = open('test.sql', 'w')
  13. for row in cur:
  14. f.write("insert into t values (" + str(row) + ");")
  15. except psycopg2.DatabaseError, e:
  16. print 'Error %s' % e
  17. sys.exit(1)
  18. finally:
  19. if con:
  20. con.close()
  21.  
  22. psql <dbname> <username> < test.sql
  23.  
  24. import psycopg
  25.  
  26. conn = psycopg2.connect("dbname=test user=postgres") # change this according to your RDBMS configuration
  27. cursor = conn.cursor()
  28.  
  29. table_name='YOUR_TABLE_HERE' # place your table name here
  30. with open("table_dump.sql") as f:
  31. cursor.execute("SELECT * FROM %s" % (table_name)) # change the query according to your needs
  32. column_names = []
  33. columns_descr = cursor.description
  34. for c in columns_descr:
  35. column_names.append(c[0])
  36. insert_prefix = 'INSERT INTO %s (%s) VALUES ' % (table_name, ', '.join(column_names))
  37. rows = cursor.fetchall()
  38. for row in rows:
  39. row_data = []
  40. for rd in row:
  41. if rd is None:
  42. row_data.append('NULL')
  43. elif isinstance(rd, datetime.datetime):
  44. row_data.append("'%s'" % (rd.strftime('%Y-%m-%d %H:%M:%S') ))
  45. else:
  46. row_data.append(repr(rd))
  47. f.write('%s (%s);n' % (insert_prefix, ', '.join(row_data))) # this is the text that will be put in the SQL file. You can change it if you wish.
  48.  
  49. def create_essentials():
  50. yaml_file = open("settings.yaml", 'r')
  51. settings = yaml.load(yaml_file)
  52. db_name = settings["db_name"]
  53. db_user = settings["db_user"]
  54. db_password = settings["db_password"]
  55. db_host = settings["db_host"]
  56. db_port = settings["db_port"]
  57. backup_path = settings["backup_path"]
  58. filename = settings["filename"]
  59. filename = filename + "-" + time.strftime("%Y%m%d") + ".backup"
  60. command_str = str(db_host)+" -p "+str(db_port)+" -d "+db_name+" -U "+db_user
  61. return command_str, backup_path, filename
  62.  
  63.  
  64. def backup_database(table_names=None):
  65. command_str,backup_path,filename = create_essentials()
  66. command_str = "pg_dump -h "+command_str
  67.  
  68. if table_names is not None:
  69. for x in table_names:
  70. command_str = command_str +" -t "+x
  71.  
  72. command_str = command_str + " -F c -b -v -f '"+backup_path+"/"+filename+"'"
  73. try:
  74. os.system(command_str)
  75. print "Backup completed"
  76. except Exception as e:
  77. print "!!Problem occured!!"
  78. print e
  79.  
  80. def restore_database(table_names=None):
  81. command_str,backup_path,filename = create_essentials()
  82. command_str = "pg_restore -h "+command_str
  83.  
  84. if table_names is not None:
  85. for x in table_names:
  86. command_str = command_str +" -t "+x
  87.  
  88. command_str = command_str + " -v '"+backup_path+"/"+filename+"'"
  89. try:
  90. os.system(command_str)
  91. print "Restore completed"
  92. except Exception as e:
  93. print "!!Problem occured!!"
  94. print e
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement