sql >> Base de Datos >  >> RDS >> PostgreSQL

Copia de seguridad de la base de datos de Postgresql usando Python

Utilice psycopg2 para establecer la conexión de datos. Hay bastantes ejemplos en la documentación:

http://initd.org/psycopg/

Una vez que haya configurado su fuente de datos, repita los resultados de su declaración "SELECCIONAR" creando una declaración "INSERTAR EN" mediante la impresión del conjunto de resultados en un archivo. Básicamente algo de lógica inversa.

De esa manera, si llega el momento y necesita usar su archivo de copia de seguridad, simplemente ejecute el archivo SQL que inserta los datos nuevamente en...

Ejemplo:

        import psycopg2
        import sys


        con = None

        try:

            con = psycopg2.connect(database='local', user='local', password='local',port='1970')
            cur = con.cursor()
            cur.execute('SELECT x FROM t')
            f = open('test.sql', 'w')
            for row in cur:
              f.write("insert into t values (" + str(row) + ");")
        except psycopg2.DatabaseError, e:
            print 'Error %s' % e
            sys.exit(1)
        finally:
            if con:
                con.close()

Luego para restaurar:

psql <dbname> <username> < test.sql

Saludos,